diff --git a/.apiversion b/.apiversion index 4074fe20..12e41412 100644 --- a/.apiversion +++ b/.apiversion @@ -1 +1 @@ -6.6 +6.9 diff --git a/.butcher/enums/Currency.yml b/.butcher/enums/Currency.yml new file mode 100644 index 00000000..92045813 --- /dev/null +++ b/.butcher/enums/Currency.yml @@ -0,0 +1,93 @@ +name: Currency +description: | + Currencies supported by Telegram Bot API + + Source: https://core.telegram.org/bots/payments#supported-currencies + +static: + AED: "AED" # United Arab Emirates Dirham + AFN: "AFN" # Afghan Afghani + ALL: "ALL" # Albanian Lek + AMD: "AMD" # Armenian Dram + ARS: "ARS" # Argentine Peso + AUD: "AUD" # Australian Dollar + AZN: "AZN" # Azerbaijani Manat + BAM: "BAM" # Bosnia & Herzegovina Convertible Mark + BDT: "BDT" # Bangladeshi Taka + BGN: "BGN" # Bulgarian Lev + BND: "BND" # Brunei Dollar + BOB: "BOB" # Bolivian Boliviano + BRL: "BRL" # Brazilian Real + BYN: "BYN" # Belarusian ruble + CAD: "CAD" # Canadian Dollar + CHF: "CHF" # Swiss Franc + CLP: "CLP" # Chilean Peso + CNY: "CNY" # Chinese Renminbi Yuan + COP: "COP" # Colombian Peso + CRC: "CRC" # Costa Rican Colón + CZK: "CZK" # Czech Koruna + DKK: "DKK" # Danish Krone + DOP: "DOP" # Dominican Peso + DZD: "DZD" # Algerian Dinar + EGP: "EGP" # Egyptian Pound + ETB: "ETB" # Ethiopian Birr + EUR: "EUR" # Euro + GBP: "GBP" # British Pound + GEL: "GEL" # Georgian Lari + GTQ: "GTQ" # Guatemalan Quetzal + HKD: "HKD" # Hong Kong Dollar + HNL: "HNL" # Honduran Lempira + HRK: "HRK" # Croatian Kuna + HUF: "HUF" # Hungarian Forint + IDR: "IDR" # Indonesian Rupiah + ILS: "ILS" # Israeli New Sheqel + INR: "INR" # Indian Rupee + ISK: "ISK" # Icelandic Króna + JMD: "JMD" # Jamaican Dollar + JPY: "JPY" # Japanese Yen + KES: "KES" # Kenyan Shilling + KGS: "KGS" # Kyrgyzstani Som + KRW: "KRW" # South Korean Won + KZT: "KZT" # Kazakhstani Tenge + LBP: "LBP" # Lebanese Pound + LKR: "LKR" # Sri Lankan Rupee + MAD: "MAD" # Moroccan Dirham + MDL: "MDL" # Moldovan Leu + MNT: "MNT" # Mongolian Tögrög + MUR: "MUR" # Mauritian Rupee + MVR: "MVR" # Maldivian Rufiyaa + MXN: "MXN" # Mexican Peso + MYR: "MYR" # Malaysian Ringgit + MZN: "MZN" # Mozambican Metical + NGN: "NGN" # Nigerian Naira + NIO: "NIO" # Nicaraguan Córdoba + NOK: "NOK" # Norwegian Krone + NPR: "NPR" # Nepalese Rupee + NZD: "NZD" # New Zealand Dollar + PAB: "PAB" # Panamanian Balboa + PEN: "PEN" # Peruvian Nuevo Sol + PHP: "PHP" # Philippine Peso + PKR: "PKR" # Pakistani Rupee + PLN: "PLN" # Polish Złoty + PYG: "PYG" # Paraguayan Guaraní + QAR: "QAR" # Qatari Riyal + RON: "RON" # Romanian Leu + RSD: "RSD" # Serbian Dinar + RUB: "RUB" # Russian Ruble + SAR: "SAR" # Saudi Riyal + SEK: "SEK" # Swedish Krona + SGD: "SGD" # Singapore Dollar + THB: "THB" # Thai Baht + TJS: "TJS" # Tajikistani Somoni + TRY: "TRY" # Turkish Lira + TTD: "TTD" # Trinidad and Tobago Dollar + TWD: "TWD" # New Taiwan Dollar + TZS: "TZS" # Tanzanian Shilling + UAH: "UAH" # Ukrainian Hryvnia + UGX: "UGX" # Ugandan Shilling + USD: "USD" # United States Dollar + UYU: "UYU" # Uruguayan Peso + UZS: "UZS" # Uzbekistani Som + VND: "VND" # Vietnamese Đồng + YER: "YER" # Yemeni Rial + ZAR: "ZAR" # South African Rand diff --git a/.butcher/enums/EncryptedPassportElement.yml b/.butcher/enums/EncryptedPassportElement.yml new file mode 100644 index 00000000..e0540d7f --- /dev/null +++ b/.butcher/enums/EncryptedPassportElement.yml @@ -0,0 +1,10 @@ +name: EncryptedPassportElement +description: | + This object represents type of encrypted passport element. + + Source: https://core.telegram.org/bots/api#encryptedpassportelement +parse: + entity: EncryptedPassportElement + category: types + attribute: type + regexp: "'([a-z_]+)'" diff --git a/.butcher/enums/PassportElementErrorType.yml b/.butcher/enums/PassportElementErrorType.yml new file mode 100644 index 00000000..d5d52aeb --- /dev/null +++ b/.butcher/enums/PassportElementErrorType.yml @@ -0,0 +1,18 @@ +name: PassportElementErrorType +description: | + This object represents a passport element error type. + + Source: https://core.telegram.org/bots/api#passportelementerror +multi_parse: + attribute: source + regexp: 'must be ([a-z_]+)' + entities: + - PassportElementErrorDataField + - PassportElementErrorFrontSide + - PassportElementErrorReverseSide + - PassportElementErrorSelfie + - PassportElementErrorFile + - PassportElementErrorFiles + - PassportElementErrorTranslationFile + - PassportElementErrorTranslationFiles + - PassportElementErrorUnspecified diff --git a/.butcher/methods/banChatMember/entity.json b/.butcher/methods/banChatMember/entity.json index c6ee2e8e..9a5eda0d 100644 --- a/.butcher/methods/banChatMember/entity.json +++ b/.butcher/methods/banChatMember/entity.json @@ -30,9 +30,9 @@ { "type": "Integer", "required": false, - "description": "Date when the user will be unbanned, unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only.", - "html_description": "Date when the user will be unbanned, unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only.", - "rst_description": "Date when the user will be unbanned, unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only.\n", + "description": "Date when the user will be unbanned; Unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only.", + "html_description": "Date when the user will be unbanned; Unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only.", + "rst_description": "Date when the user will be unbanned; Unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only.\n", "name": "until_date" }, { diff --git a/.butcher/methods/getUpdates/entity.json b/.butcher/methods/getUpdates/entity.json index 6163ad20..775ad6dd 100644 --- a/.butcher/methods/getUpdates/entity.json +++ b/.butcher/methods/getUpdates/entity.json @@ -38,9 +38,9 @@ { "type": "Array of String", "required": false, - "description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify ['message', 'edited_channel_post', 'callback_query'] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used.\n\nPlease note that this parameter doesn't affect updates created before the call to the getUpdates, so unwanted updates may be received for a short period of time.", - "html_description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify [“message”, “edited_channel_post”, “callback_query”] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used.
\n
\nPlease note that this parameter doesn't affect updates created before the call to the getUpdates, so unwanted updates may be received for a short period of time.", - "rst_description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify ['message', 'edited_channel_post', 'callback_query'] to only receive updates of these types. See :class:`aiogram.types.update.Update` for a complete list of available update types. Specify an empty list to receive all update types except *chat_member* (default). If not specified, the previous setting will be used.\n\n\n\nPlease note that this parameter doesn't affect updates created before the call to the getUpdates, so unwanted updates may be received for a short period of time.\n", + "description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify [\"message\", \"edited_channel_post\", \"callback_query\"] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used.\n\nPlease note that this parameter doesn't affect updates created before the call to the getUpdates, so unwanted updates may be received for a short period of time.", + "html_description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify [\"message\", \"edited_channel_post\", \"callback_query\"] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used.
\n
\nPlease note that this parameter doesn't affect updates created before the call to the getUpdates, so unwanted updates may be received for a short period of time.", + "rst_description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify :code:`[\"message\", \"edited_channel_post\", \"callback_query\"]` to only receive updates of these types. See :class:`aiogram.types.update.Update` for a complete list of available update types. Specify an empty list to receive all update types except *chat_member* (default). If not specified, the previous setting will be used.\n\n\n\nPlease note that this parameter doesn't affect updates created before the call to the getUpdates, so unwanted updates may be received for a short period of time.\n", "name": "allowed_updates" } ], diff --git a/.butcher/methods/promoteChatMember/entity.json b/.butcher/methods/promoteChatMember/entity.json index ad0fce42..d866b307 100644 --- a/.butcher/methods/promoteChatMember/entity.json +++ b/.butcher/methods/promoteChatMember/entity.json @@ -38,27 +38,11 @@ { "type": "Boolean", "required": false, - "description": "Pass True if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", - "html_description": "Pass True if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", - "rst_description": "Pass :code:`True` if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege\n", + "description": "Pass True if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", + "html_description": "Pass True if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", + "rst_description": "Pass :code:`True` if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege\n", "name": "can_manage_chat" }, - { - "type": "Boolean", - "required": false, - "description": "Pass True if the administrator can create channel posts, channels only", - "html_description": "Pass True if the administrator can create channel posts, channels only", - "rst_description": "Pass :code:`True` if the administrator can create channel posts, channels only\n", - "name": "can_post_messages" - }, - { - "type": "Boolean", - "required": false, - "description": "Pass True if the administrator can edit messages of other users and can pin messages, channels only", - "html_description": "Pass True if the administrator can edit messages of other users and can pin messages, channels only", - "rst_description": "Pass :code:`True` if the administrator can edit messages of other users and can pin messages, channels only\n", - "name": "can_edit_messages" - }, { "type": "Boolean", "required": false, @@ -78,9 +62,9 @@ { "type": "Boolean", "required": false, - "description": "Pass True if the administrator can restrict, ban or unban chat members", - "html_description": "Pass True if the administrator can restrict, ban or unban chat members", - "rst_description": "Pass :code:`True` if the administrator can restrict, ban or unban chat members\n", + "description": "Pass True if the administrator can restrict, ban or unban chat members, or access supergroup statistics", + "html_description": "Pass True if the administrator can restrict, ban or unban chat members, or access supergroup statistics", + "rst_description": "Pass :code:`True` if the administrator can restrict, ban or unban chat members, or access supergroup statistics\n", "name": "can_restrict_members" }, { @@ -107,6 +91,22 @@ "rst_description": "Pass :code:`True` if the administrator can invite new users to the chat\n", "name": "can_invite_users" }, + { + "type": "Boolean", + "required": false, + "description": "Pass True if the administrator can post messages in the channel, or access channel statistics; channels only", + "html_description": "Pass True if the administrator can post messages in the channel, or access channel statistics; channels only", + "rst_description": "Pass :code:`True` if the administrator can post messages in the channel, or access channel statistics; channels only\n", + "name": "can_post_messages" + }, + { + "type": "Boolean", + "required": false, + "description": "Pass True if the administrator can edit messages of other users and can pin messages; channels only", + "html_description": "Pass True if the administrator can edit messages of other users and can pin messages; channels only", + "rst_description": "Pass :code:`True` if the administrator can edit messages of other users and can pin messages; channels only\n", + "name": "can_edit_messages" + }, { "type": "Boolean", "required": false, @@ -115,6 +115,30 @@ "rst_description": "Pass :code:`True` if the administrator can pin messages, supergroups only\n", "name": "can_pin_messages" }, + { + "type": "Boolean", + "required": false, + "description": "Pass True if the administrator can post stories in the channel; channels only", + "html_description": "Pass True if the administrator can post stories in the channel; channels only", + "rst_description": "Pass :code:`True` if the administrator can post stories in the channel; channels only\n", + "name": "can_post_stories" + }, + { + "type": "Boolean", + "required": false, + "description": "Pass True if the administrator can edit stories posted by other users; channels only", + "html_description": "Pass True if the administrator can edit stories posted by other users; channels only", + "rst_description": "Pass :code:`True` if the administrator can edit stories posted by other users; channels only\n", + "name": "can_edit_stories" + }, + { + "type": "Boolean", + "required": false, + "description": "Pass True if the administrator can delete stories posted by other users; channels only", + "html_description": "Pass True if the administrator can delete stories posted by other users; channels only", + "rst_description": "Pass :code:`True` if the administrator can delete stories posted by other users; channels only\n", + "name": "can_delete_stories" + }, { "type": "Boolean", "required": false, diff --git a/.butcher/methods/restrictChatMember/entity.json b/.butcher/methods/restrictChatMember/entity.json index f0ed7537..38d78844 100644 --- a/.butcher/methods/restrictChatMember/entity.json +++ b/.butcher/methods/restrictChatMember/entity.json @@ -46,9 +46,9 @@ { "type": "Integer", "required": false, - "description": "Date when restrictions will be lifted for the user, unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever", - "html_description": "Date when restrictions will be lifted for the user, unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever", - "rst_description": "Date when restrictions will be lifted for the user, unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever\n", + "description": "Date when restrictions will be lifted for the user; Unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever", + "html_description": "Date when restrictions will be lifted for the user; Unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever", + "rst_description": "Date when restrictions will be lifted for the user; Unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever\n", "name": "until_date" } ], diff --git a/.butcher/methods/setWebhook/entity.json b/.butcher/methods/setWebhook/entity.json index 337a7b43..593186b6 100644 --- a/.butcher/methods/setWebhook/entity.json +++ b/.butcher/methods/setWebhook/entity.json @@ -46,9 +46,9 @@ { "type": "Array of String", "required": false, - "description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify ['message', 'edited_channel_post', 'callback_query'] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used.\nPlease note that this parameter doesn't affect updates created before the call to the setWebhook, so unwanted updates may be received for a short period of time.", - "html_description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify [“message”, “edited_channel_post”, “callback_query”] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used.
\nPlease note that this parameter doesn't affect updates created before the call to the setWebhook, so unwanted updates may be received for a short period of time.", - "rst_description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify ['message', 'edited_channel_post', 'callback_query'] to only receive updates of these types. See :class:`aiogram.types.update.Update` for a complete list of available update types. Specify an empty list to receive all update types except *chat_member* (default). If not specified, the previous setting will be used.\n\nPlease note that this parameter doesn't affect updates created before the call to the setWebhook, so unwanted updates may be received for a short period of time.\n", + "description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify [\"message\", \"edited_channel_post\", \"callback_query\"] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used.\nPlease note that this parameter doesn't affect updates created before the call to the setWebhook, so unwanted updates may be received for a short period of time.", + "html_description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify [\"message\", \"edited_channel_post\", \"callback_query\"] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used.
\nPlease note that this parameter doesn't affect updates created before the call to the setWebhook, so unwanted updates may be received for a short period of time.", + "rst_description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify :code:`[\"message\", \"edited_channel_post\", \"callback_query\"]` to only receive updates of these types. See :class:`aiogram.types.update.Update` for a complete list of available update types. Specify an empty list to receive all update types except *chat_member* (default). If not specified, the previous setting will be used.\n\nPlease note that this parameter doesn't affect updates created before the call to the setWebhook, so unwanted updates may be received for a short period of time.\n", "name": "allowed_updates" }, { diff --git a/.butcher/methods/unpinAllGeneralForumTopicMessages/entity.json b/.butcher/methods/unpinAllGeneralForumTopicMessages/entity.json new file mode 100644 index 00000000..c6130087 --- /dev/null +++ b/.butcher/methods/unpinAllGeneralForumTopicMessages/entity.json @@ -0,0 +1,25 @@ +{ + "meta": {}, + "group": { + "title": "Available methods", + "anchor": "available-methods" + }, + "object": { + "anchor": "unpinallgeneralforumtopicmessages", + "name": "unpinAllGeneralForumTopicMessages", + "description": "Use this method to clear the list of pinned messages in a General forum topic. The bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. Returns True on success.", + "html_description": "

Use this method to clear the list of pinned messages in a General forum topic. The bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. Returns True on success.

", + "rst_description": "Use this method to clear the list of pinned messages in a General forum topic. The bot must be an administrator in the chat for this to work and must have the *can_pin_messages* administrator right in the supergroup. Returns :code:`True` on success.", + "annotations": [ + { + "type": "Integer or String", + "required": true, + "description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)", + "html_description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)", + "rst_description": "Unique identifier for the target chat or username of the target supergroup (in the format :code:`@supergroupusername`)\n", + "name": "chat_id" + } + ], + "category": "methods" + } +} diff --git a/.butcher/schema/schema.json b/.butcher/schema/schema.json index c3638d34..27e87e97 100644 --- a/.butcher/schema/schema.json +++ b/.butcher/schema/schema.json @@ -1,7 +1,7 @@ { "api": { - "version": "6.7", - "release_date": "2023-04-21" + "version": "6.9", + "release_date": "2023-09-22" }, "items": [ { @@ -121,9 +121,9 @@ }, { "type": "ChatMemberUpdated", - "description": "A chat member's status was updated in a chat. The bot must be an administrator in the chat and must explicitly specify 'chat_member' in the list of allowed_updates to receive these updates.", - "html_description": "Optional. A chat member's status was updated in a chat. The bot must be an administrator in the chat and must explicitly specify “chat_member” in the list of allowed_updates to receive these updates.", - "rst_description": "*Optional*. A chat member's status was updated in a chat. The bot must be an administrator in the chat and must explicitly specify 'chat_member' in the list of *allowed_updates* to receive these updates.\n", + "description": "A chat member's status was updated in a chat. The bot must be an administrator in the chat and must explicitly specify \"chat_member\" in the list of allowed_updates to receive these updates.", + "html_description": "Optional. A chat member's status was updated in a chat. The bot must be an administrator in the chat and must explicitly specify \"chat_member\" in the list of allowed_updates to receive these updates.", + "rst_description": "*Optional*. A chat member's status was updated in a chat. The bot must be an administrator in the chat and must explicitly specify :code:`\"chat_member\"` in the list of *allowed_updates* to receive these updates.\n", "name": "chat_member", "required": false }, @@ -172,9 +172,9 @@ { "type": "Array of String", "required": false, - "description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify ['message', 'edited_channel_post', 'callback_query'] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used.\n\nPlease note that this parameter doesn't affect updates created before the call to the getUpdates, so unwanted updates may be received for a short period of time.", - "html_description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify [“message”, “edited_channel_post”, “callback_query”] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used.
\n
\nPlease note that this parameter doesn't affect updates created before the call to the getUpdates, so unwanted updates may be received for a short period of time.", - "rst_description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify ['message', 'edited_channel_post', 'callback_query'] to only receive updates of these types. See :class:`aiogram.types.update.Update` for a complete list of available update types. Specify an empty list to receive all update types except *chat_member* (default). If not specified, the previous setting will be used.\n\n\n\nPlease note that this parameter doesn't affect updates created before the call to the getUpdates, so unwanted updates may be received for a short period of time.\n", + "description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify [\"message\", \"edited_channel_post\", \"callback_query\"] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used.\n\nPlease note that this parameter doesn't affect updates created before the call to the getUpdates, so unwanted updates may be received for a short period of time.", + "html_description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify [\"message\", \"edited_channel_post\", \"callback_query\"] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used.
\n
\nPlease note that this parameter doesn't affect updates created before the call to the getUpdates, so unwanted updates may be received for a short period of time.", + "rst_description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify :code:`[\"message\", \"edited_channel_post\", \"callback_query\"]` to only receive updates of these types. See :class:`aiogram.types.update.Update` for a complete list of available update types. Specify an empty list to receive all update types except *chat_member* (default). If not specified, the previous setting will be used.\n\n\n\nPlease note that this parameter doesn't affect updates created before the call to the getUpdates, so unwanted updates may be received for a short period of time.\n", "name": "allowed_updates" } ], @@ -222,9 +222,9 @@ { "type": "Array of String", "required": false, - "description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify ['message', 'edited_channel_post', 'callback_query'] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used.\nPlease note that this parameter doesn't affect updates created before the call to the setWebhook, so unwanted updates may be received for a short period of time.", - "html_description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify [“message”, “edited_channel_post”, “callback_query”] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used.
\nPlease note that this parameter doesn't affect updates created before the call to the setWebhook, so unwanted updates may be received for a short period of time.", - "rst_description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify ['message', 'edited_channel_post', 'callback_query'] to only receive updates of these types. See :class:`aiogram.types.update.Update` for a complete list of available update types. Specify an empty list to receive all update types except *chat_member* (default). If not specified, the previous setting will be used.\n\nPlease note that this parameter doesn't affect updates created before the call to the setWebhook, so unwanted updates may be received for a short period of time.\n", + "description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify [\"message\", \"edited_channel_post\", \"callback_query\"] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used.\nPlease note that this parameter doesn't affect updates created before the call to the setWebhook, so unwanted updates may be received for a short period of time.", + "html_description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify [\"message\", \"edited_channel_post\", \"callback_query\"] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used.
\nPlease note that this parameter doesn't affect updates created before the call to the setWebhook, so unwanted updates may be received for a short period of time.", + "rst_description": "A JSON-serialized list of the update types you want your bot to receive. For example, specify :code:`[\"message\", \"edited_channel_post\", \"callback_query\"]` to only receive updates of these types. See :class:`aiogram.types.update.Update` for a complete list of available update types. Specify an empty list to receive all update types except *chat_member* (default). If not specified, the previous setting will be used.\n\nPlease note that this parameter doesn't affect updates created before the call to the setWebhook, so unwanted updates may be received for a short period of time.\n", "name": "allowed_updates" }, { @@ -547,6 +547,14 @@ "name": "emoji_status_custom_emoji_id", "required": false }, + { + "type": "Integer", + "description": "Expiration date of the emoji status of the other party in a private chat in Unix time, if any. Returned only in getChat.", + "html_description": "Optional. Expiration date of the emoji status of the other party in a private chat in Unix time, if any. Returned only in getChat.", + "rst_description": "*Optional*. Expiration date of the emoji status of the other party in a private chat in Unix time, if any. Returned only in :class:`aiogram.methods.get_chat.GetChat`.\n", + "name": "emoji_status_expiration_date", + "required": false + }, { "type": "String", "description": "Bio of the other party in a private chat. Returned only in getChat.", @@ -917,6 +925,14 @@ "name": "sticker", "required": false }, + { + "type": "Story", + "description": "Message is a forwarded story", + "html_description": "Optional. Message is a forwarded story", + "rst_description": "*Optional*. Message is a forwarded story\n", + "name": "story", + "required": false + }, { "type": "Video", "description": "Message is a video, information about the video", @@ -1151,9 +1167,9 @@ }, { "type": "WriteAccessAllowed", - "description": "Service message: the user allowed the bot added to the attachment menu to write messages", - "html_description": "Optional. Service message: the user allowed the bot added to the attachment menu to write messages", - "rst_description": "*Optional*. Service message: the user allowed the bot added to the attachment menu to write messages\n", + "description": "Service message: the user allowed the bot to write messages after adding it to the attachment or side menu, launching a Web App from a link, or accepting an explicit request from a Web App sent by the method requestWriteAccess", + "html_description": "Optional. Service message: the user allowed the bot to write messages after adding it to the attachment or side menu, launching a Web App from a link, or accepting an explicit request from a Web App sent by the method requestWriteAccess", + "rst_description": "*Optional*. Service message: the user allowed the bot to write messages after adding it to the attachment or side menu, launching a Web App from a link, or accepting an explicit request from a Web App sent by the method `requestWriteAccess `_\n", "name": "write_access_allowed", "required": false }, @@ -1628,6 +1644,15 @@ ], "category": "types" }, + { + "anchor": "story", + "name": "Story", + "description": "This object represents a message about a forwarded story in the chat. Currently holds no information.", + "html_description": "

This object represents a message about a forwarded story in the chat. Currently holds no information.

", + "rst_description": "This object represents a message about a forwarded story in the chat. Currently holds no information.", + "annotations": [], + "category": "types" + }, { "anchor": "video", "name": "Video", @@ -1935,19 +1960,27 @@ "name": "poll_id", "required": true }, + { + "type": "Chat", + "description": "The chat that changed the answer to the poll, if the voter is anonymous", + "html_description": "Optional. The chat that changed the answer to the poll, if the voter is anonymous", + "rst_description": "*Optional*. The chat that changed the answer to the poll, if the voter is anonymous\n", + "name": "voter_chat", + "required": false + }, { "type": "User", - "description": "The user, who changed the answer to the poll", - "html_description": "The user, who changed the answer to the poll", - "rst_description": "The user, who changed the answer to the poll\n", + "description": "The user that changed the answer to the poll, if the voter isn't anonymous", + "html_description": "Optional. The user that changed the answer to the poll, if the voter isn't anonymous", + "rst_description": "*Optional*. The user that changed the answer to the poll, if the voter isn't anonymous\n", "name": "user", - "required": true + "required": false }, { "type": "Array of Integer", - "description": "0-based identifiers of answer options, chosen by the user. May be empty if the user retracted their vote.", - "html_description": "0-based identifiers of answer options, chosen by the user. May be empty if the user retracted their vote.", - "rst_description": "0-based identifiers of answer options, chosen by the user. May be empty if the user retracted their vote.\n", + "description": "0-based identifiers of chosen answer options. May be empty if the vote was retracted.", + "html_description": "0-based identifiers of chosen answer options. May be empty if the vote was retracted.", + "rst_description": "0-based identifiers of chosen answer options. May be empty if the vote was retracted.\n", "name": "option_ids", "required": true } @@ -2421,17 +2454,33 @@ { "anchor": "writeaccessallowed", "name": "WriteAccessAllowed", - "description": "This object represents a service message about a user allowing a bot to write messages after adding the bot to the attachment menu or launching a Web App from a link.", - "html_description": "

This object represents a service message about a user allowing a bot to write messages after adding the bot to the attachment menu or launching a Web App from a link.

", - "rst_description": "This object represents a service message about a user allowing a bot to write messages after adding the bot to the attachment menu or launching a Web App from a link.", + "description": "This object represents a service message about a user allowing a bot to write messages after adding it to the attachment menu, launching a Web App from a link, or accepting an explicit request from a Web App sent by the method requestWriteAccess.", + "html_description": "

This object represents a service message about a user allowing a bot to write messages after adding it to the attachment menu, launching a Web App from a link, or accepting an explicit request from a Web App sent by the method requestWriteAccess.

", + "rst_description": "This object represents a service message about a user allowing a bot to write messages after adding it to the attachment menu, launching a Web App from a link, or accepting an explicit request from a Web App sent by the method `requestWriteAccess `_.", "annotations": [ + { + "type": "Boolean", + "description": "True, if the access was granted after the user accepted an explicit request from a Web App sent by the method requestWriteAccess", + "html_description": "Optional. True, if the access was granted after the user accepted an explicit request from a Web App sent by the method requestWriteAccess", + "rst_description": "*Optional*. True, if the access was granted after the user accepted an explicit request from a Web App sent by the method `requestWriteAccess `_\n", + "name": "from_request", + "required": false + }, { "type": "String", - "description": "Name of the Web App which was launched from a link", - "html_description": "Optional. Name of the Web App which was launched from a link", - "rst_description": "*Optional*. Name of the Web App which was launched from a link\n", + "description": "Name of the Web App, if the access was granted when the Web App was launched from a link", + "html_description": "Optional. Name of the Web App, if the access was granted when the Web App was launched from a link", + "rst_description": "*Optional*. Name of the Web App, if the access was granted when the Web App was launched from a link\n", "name": "web_app_name", "required": false + }, + { + "type": "Boolean", + "description": "True, if the access was granted when the bot was added to the attachment or side menu", + "html_description": "Optional. True, if the access was granted when the bot was added to the attachment or side menu", + "rst_description": "*Optional*. True, if the access was granted when the bot was added to the attachment or side menu\n", + "name": "from_attachment_menu", + "required": false } ], "category": "types" @@ -2577,8 +2626,8 @@ { "type": "String", "description": "An HTTPS URL of a Web App to be opened with additional data as specified in Initializing Web Apps", - "html_description": "An HTTPS URL of a Web App to be opened with additional data as specified in Initializing Web Apps", - "rst_description": "An HTTPS URL of a Web App to be opened with additional data as specified in `Initializing Web Apps `_\n", + "html_description": "An HTTPS URL of a Web App to be opened with additional data as specified in Initializing Web Apps", + "rst_description": "An HTTPS URL of a Web App to be opened with additional data as specified in `Initializing Web Apps `_\n", "name": "url", "required": true } @@ -2928,9 +2977,9 @@ }, { "type": "String", - "description": "If set, pressing the button will prompt the user to select one of their chats, open that chat and insert the bot's username and the specified inline query in the input field. May be empty, in which case just the bot's username will be inserted.\n\nNote: This offers an easy way for users to start using your bot in inline mode when they are currently in a private chat with it. Especially useful when combined with switch_pm… actions - in this case the user will be automatically returned to the chat they switched from, skipping the chat selection screen.", - "html_description": "Optional. If set, pressing the button will prompt the user to select one of their chats, open that chat and insert the bot's username and the specified inline query in the input field. May be empty, in which case just the bot's username will be inserted.
\n
\nNote: This offers an easy way for users to start using your bot in inline mode when they are currently in a private chat with it. Especially useful when combined with switch_pm… actions - in this case the user will be automatically returned to the chat they switched from, skipping the chat selection screen.", - "rst_description": "*Optional*. If set, pressing the button will prompt the user to select one of their chats, open that chat and insert the bot's username and the specified inline query in the input field. May be empty, in which case just the bot's username will be inserted.\n\n\n\n**Note:** This offers an easy way for users to start using your bot in `inline mode `_ when they are currently in a private chat with it. Especially useful when combined with `https://core.telegram.org/bots/api#answerinlinequery `_ *switch_pm…* actions - in this case the user will be automatically returned to the chat they switched from, skipping the chat selection screen.\n", + "description": "If set, pressing the button will prompt the user to select one of their chats, open that chat and insert the bot's username and the specified inline query in the input field. May be empty, in which case just the bot's username will be inserted.", + "html_description": "Optional. If set, pressing the button will prompt the user to select one of their chats, open that chat and insert the bot's username and the specified inline query in the input field. May be empty, in which case just the bot's username will be inserted.", + "rst_description": "*Optional*. If set, pressing the button will prompt the user to select one of their chats, open that chat and insert the bot's username and the specified inline query in the input field. May be empty, in which case just the bot's username will be inserted.\n", "name": "switch_inline_query", "required": false }, @@ -3302,9 +3351,9 @@ }, { "type": "Boolean", - "description": "True, if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", - "html_description": "True, if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", - "rst_description": ":code:`True`, if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege\n", + "description": "True, if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", + "html_description": "True, if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", + "rst_description": ":code:`True`, if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege\n", "name": "can_manage_chat", "required": true }, @@ -3326,9 +3375,9 @@ }, { "type": "Boolean", - "description": "True, if the administrator can restrict, ban or unban chat members", - "html_description": "True, if the administrator can restrict, ban or unban chat members", - "rst_description": ":code:`True`, if the administrator can restrict, ban or unban chat members\n", + "description": "True, if the administrator can restrict, ban or unban chat members, or access supergroup statistics", + "html_description": "True, if the administrator can restrict, ban or unban chat members, or access supergroup statistics", + "rst_description": ":code:`True`, if the administrator can restrict, ban or unban chat members, or access supergroup statistics\n", "name": "can_restrict_members", "required": true }, @@ -3358,9 +3407,9 @@ }, { "type": "Boolean", - "description": "True, if the administrator can post in the channel; channels only", - "html_description": "Optional. True, if the administrator can post in the channel; channels only", - "rst_description": "*Optional*. :code:`True`, if the administrator can post in the channel; channels only\n", + "description": "True, if the administrator can post messages in the channel, or access channel statistics; channels only", + "html_description": "Optional. True, if the administrator can post messages in the channel, or access channel statistics; channels only", + "rst_description": "*Optional*. :code:`True`, if the administrator can post messages in the channel, or access channel statistics; channels only\n", "name": "can_post_messages", "required": false }, @@ -3380,6 +3429,30 @@ "name": "can_pin_messages", "required": false }, + { + "type": "Boolean", + "description": "True, if the administrator can post stories in the channel; channels only", + "html_description": "Optional. True, if the administrator can post stories in the channel; channels only", + "rst_description": "*Optional*. :code:`True`, if the administrator can post stories in the channel; channels only\n", + "name": "can_post_stories", + "required": false + }, + { + "type": "Boolean", + "description": "True, if the administrator can edit stories posted by other users; channels only", + "html_description": "Optional. True, if the administrator can edit stories posted by other users; channels only", + "rst_description": "*Optional*. :code:`True`, if the administrator can edit stories posted by other users; channels only\n", + "name": "can_edit_stories", + "required": false + }, + { + "type": "Boolean", + "description": "True, if the administrator can delete stories posted by other users; channels only", + "html_description": "Optional. True, if the administrator can delete stories posted by other users; channels only", + "rst_description": "*Optional*. :code:`True`, if the administrator can delete stories posted by other users; channels only\n", + "name": "can_delete_stories", + "required": false + }, { "type": "Boolean", "description": "True, if the user is allowed to create, rename, close, and reopen forum topics; supergroups only", @@ -3483,9 +3556,9 @@ }, { "type": "Boolean", - "description": "True, if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", - "html_description": "True, if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", - "rst_description": ":code:`True`, if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege\n", + "description": "True, if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", + "html_description": "True, if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", + "rst_description": ":code:`True`, if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege\n", "name": "can_manage_chat", "required": true }, @@ -3507,9 +3580,9 @@ }, { "type": "Boolean", - "description": "True, if the administrator can restrict, ban or unban chat members", - "html_description": "True, if the administrator can restrict, ban or unban chat members", - "rst_description": ":code:`True`, if the administrator can restrict, ban or unban chat members\n", + "description": "True, if the administrator can restrict, ban or unban chat members, or access supergroup statistics", + "html_description": "True, if the administrator can restrict, ban or unban chat members, or access supergroup statistics", + "rst_description": ":code:`True`, if the administrator can restrict, ban or unban chat members, or access supergroup statistics\n", "name": "can_restrict_members", "required": true }, @@ -3539,9 +3612,9 @@ }, { "type": "Boolean", - "description": "True, if the administrator can post in the channel; channels only", - "html_description": "Optional. True, if the administrator can post in the channel; channels only", - "rst_description": "*Optional*. :code:`True`, if the administrator can post in the channel; channels only\n", + "description": "True, if the administrator can post messages in the channel, or access channel statistics; channels only", + "html_description": "Optional. True, if the administrator can post messages in the channel, or access channel statistics; channels only", + "rst_description": "*Optional*. :code:`True`, if the administrator can post messages in the channel, or access channel statistics; channels only\n", "name": "can_post_messages", "required": false }, @@ -3561,6 +3634,30 @@ "name": "can_pin_messages", "required": false }, + { + "type": "Boolean", + "description": "True, if the administrator can post stories in the channel; channels only", + "html_description": "Optional. True, if the administrator can post stories in the channel; channels only", + "rst_description": "*Optional*. :code:`True`, if the administrator can post stories in the channel; channels only\n", + "name": "can_post_stories", + "required": false + }, + { + "type": "Boolean", + "description": "True, if the administrator can edit stories posted by other users; channels only", + "html_description": "Optional. True, if the administrator can edit stories posted by other users; channels only", + "rst_description": "*Optional*. :code:`True`, if the administrator can edit stories posted by other users; channels only\n", + "name": "can_edit_stories", + "required": false + }, + { + "type": "Boolean", + "description": "True, if the administrator can delete stories posted by other users; channels only", + "html_description": "Optional. True, if the administrator can delete stories posted by other users; channels only", + "rst_description": "*Optional*. :code:`True`, if the administrator can delete stories posted by other users; channels only\n", + "name": "can_delete_stories", + "required": false + }, { "type": "Boolean", "description": "True, if the user is allowed to create, rename, close, and reopen forum topics; supergroups only", @@ -3751,9 +3848,9 @@ }, { "type": "Integer", - "description": "Date when restrictions will be lifted for this user; unix time. If 0, then the user is restricted forever", - "html_description": "Date when restrictions will be lifted for this user; unix time. If 0, then the user is restricted forever", - "rst_description": "Date when restrictions will be lifted for this user; unix time. If 0, then the user is restricted forever\n", + "description": "Date when restrictions will be lifted for this user; Unix time. If 0, then the user is restricted forever", + "html_description": "Date when restrictions will be lifted for this user; Unix time. If 0, then the user is restricted forever", + "rst_description": "Date when restrictions will be lifted for this user; Unix time. If 0, then the user is restricted forever\n", "name": "until_date", "required": true } @@ -3811,9 +3908,9 @@ }, { "type": "Integer", - "description": "Date when restrictions will be lifted for this user; unix time. If 0, then the user is banned forever", - "html_description": "Date when restrictions will be lifted for this user; unix time. If 0, then the user is banned forever", - "rst_description": "Date when restrictions will be lifted for this user; unix time. If 0, then the user is banned forever\n", + "description": "Date when restrictions will be lifted for this user; Unix time. If 0, then the user is banned forever", + "html_description": "Date when restrictions will be lifted for this user; Unix time. If 0, then the user is banned forever", + "rst_description": "Date when restrictions will be lifted for this user; Unix time. If 0, then the user is banned forever\n", "name": "until_date", "required": true } @@ -3911,9 +4008,9 @@ }, { "type": "Integer", - "description": "Identifier of a private chat with the user who sent the join request. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot can use this identifier for 24 hours to send messages until the join request is processed, assuming no other administrator contacted the user.", - "html_description": "Identifier of a private chat with the user who sent the join request. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot can use this identifier for 24 hours to send messages until the join request is processed, assuming no other administrator contacted the user.", - "rst_description": "Identifier of a private chat with the user who sent the join request. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot can use this identifier for 24 hours to send messages until the join request is processed, assuming no other administrator contacted the user.\n", + "description": "Identifier of a private chat with the user who sent the join request. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot can use this identifier for 5 minutes to send messages until the join request is processed, assuming no other administrator contacted the user.", + "html_description": "Identifier of a private chat with the user who sent the join request. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot can use this identifier for 5 minutes to send messages until the join request is processed, assuming no other administrator contacted the user.", + "rst_description": "Identifier of a private chat with the user who sent the join request. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot can use this identifier for 5 minutes to send messages until the join request is processed, assuming no other administrator contacted the user.\n", "name": "user_chat_id", "required": true }, @@ -6788,9 +6885,9 @@ { "type": "Integer", "required": false, - "description": "Date when the user will be unbanned, unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only.", - "html_description": "Date when the user will be unbanned, unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only.", - "rst_description": "Date when the user will be unbanned, unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only.\n", + "description": "Date when the user will be unbanned; Unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only.", + "html_description": "Date when the user will be unbanned; Unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only.", + "rst_description": "Date when the user will be unbanned; Unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only.\n", "name": "until_date" }, { @@ -6880,9 +6977,9 @@ { "type": "Integer", "required": false, - "description": "Date when restrictions will be lifted for the user, unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever", - "html_description": "Date when restrictions will be lifted for the user, unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever", - "rst_description": "Date when restrictions will be lifted for the user, unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever\n", + "description": "Date when restrictions will be lifted for the user; Unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever", + "html_description": "Date when restrictions will be lifted for the user; Unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever", + "rst_description": "Date when restrictions will be lifted for the user; Unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever\n", "name": "until_date" } ], @@ -6922,27 +7019,11 @@ { "type": "Boolean", "required": false, - "description": "Pass True if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", - "html_description": "Pass True if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", - "rst_description": "Pass :code:`True` if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege\n", + "description": "Pass True if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", + "html_description": "Pass True if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", + "rst_description": "Pass :code:`True` if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege\n", "name": "can_manage_chat" }, - { - "type": "Boolean", - "required": false, - "description": "Pass True if the administrator can create channel posts, channels only", - "html_description": "Pass True if the administrator can create channel posts, channels only", - "rst_description": "Pass :code:`True` if the administrator can create channel posts, channels only\n", - "name": "can_post_messages" - }, - { - "type": "Boolean", - "required": false, - "description": "Pass True if the administrator can edit messages of other users and can pin messages, channels only", - "html_description": "Pass True if the administrator can edit messages of other users and can pin messages, channels only", - "rst_description": "Pass :code:`True` if the administrator can edit messages of other users and can pin messages, channels only\n", - "name": "can_edit_messages" - }, { "type": "Boolean", "required": false, @@ -6962,9 +7043,9 @@ { "type": "Boolean", "required": false, - "description": "Pass True if the administrator can restrict, ban or unban chat members", - "html_description": "Pass True if the administrator can restrict, ban or unban chat members", - "rst_description": "Pass :code:`True` if the administrator can restrict, ban or unban chat members\n", + "description": "Pass True if the administrator can restrict, ban or unban chat members, or access supergroup statistics", + "html_description": "Pass True if the administrator can restrict, ban or unban chat members, or access supergroup statistics", + "rst_description": "Pass :code:`True` if the administrator can restrict, ban or unban chat members, or access supergroup statistics\n", "name": "can_restrict_members" }, { @@ -6991,6 +7072,22 @@ "rst_description": "Pass :code:`True` if the administrator can invite new users to the chat\n", "name": "can_invite_users" }, + { + "type": "Boolean", + "required": false, + "description": "Pass True if the administrator can post messages in the channel, or access channel statistics; channels only", + "html_description": "Pass True if the administrator can post messages in the channel, or access channel statistics; channels only", + "rst_description": "Pass :code:`True` if the administrator can post messages in the channel, or access channel statistics; channels only\n", + "name": "can_post_messages" + }, + { + "type": "Boolean", + "required": false, + "description": "Pass True if the administrator can edit messages of other users and can pin messages; channels only", + "html_description": "Pass True if the administrator can edit messages of other users and can pin messages; channels only", + "rst_description": "Pass :code:`True` if the administrator can edit messages of other users and can pin messages; channels only\n", + "name": "can_edit_messages" + }, { "type": "Boolean", "required": false, @@ -6999,6 +7096,30 @@ "rst_description": "Pass :code:`True` if the administrator can pin messages, supergroups only\n", "name": "can_pin_messages" }, + { + "type": "Boolean", + "required": false, + "description": "Pass True if the administrator can post stories in the channel; channels only", + "html_description": "Pass True if the administrator can post stories in the channel; channels only", + "rst_description": "Pass :code:`True` if the administrator can post stories in the channel; channels only\n", + "name": "can_post_stories" + }, + { + "type": "Boolean", + "required": false, + "description": "Pass True if the administrator can edit stories posted by other users; channels only", + "html_description": "Pass True if the administrator can edit stories posted by other users; channels only", + "rst_description": "Pass :code:`True` if the administrator can edit stories posted by other users; channels only\n", + "name": "can_edit_stories" + }, + { + "type": "Boolean", + "required": false, + "description": "Pass True if the administrator can delete stories posted by other users; channels only", + "html_description": "Pass True if the administrator can delete stories posted by other users; channels only", + "rst_description": "Pass :code:`True` if the administrator can delete stories posted by other users; channels only\n", + "name": "can_delete_stories" + }, { "type": "Boolean", "required": false, @@ -7945,6 +8066,24 @@ ], "category": "methods" }, + { + "anchor": "unpinallgeneralforumtopicmessages", + "name": "unpinAllGeneralForumTopicMessages", + "description": "Use this method to clear the list of pinned messages in a General forum topic. The bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. Returns True on success.", + "html_description": "

Use this method to clear the list of pinned messages in a General forum topic. The bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. Returns True on success.

", + "rst_description": "Use this method to clear the list of pinned messages in a General forum topic. The bot must be an administrator in the chat for this to work and must have the *can_pin_messages* administrator right in the supergroup. Returns :code:`True` on success.", + "annotations": [ + { + "type": "Integer or String", + "required": true, + "description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)", + "html_description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)", + "rst_description": "Unique identifier for the target chat or username of the target supergroup (in the format :code:`@supergroupusername`)\n", + "name": "chat_id" + } + ], + "category": "methods" + }, { "anchor": "answercallbackquery", "name": "answerCallbackQuery", @@ -9629,9 +9768,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 switch back to the inline mode using the method web_app_switch_inline_query inside the Web App.", - "html_description": "Optional. Description of the Web App that will be launched when the user presses the button. The Web App will be able to switch back to the inline mode using the method web_app_switch_inline_query inside the Web App.", - "rst_description": "*Optional*. Description of the `Web App `_ that will be launched when the user presses the button. The Web App will be able to switch back to the inline mode using the method *web_app_switch_inline_query* inside the Web App.\n", + "description": "Description of the Web App that will be launched when the user presses the button. The Web App will be able to switch back to the inline mode using the method switchInlineQuery inside the Web App.", + "html_description": "Optional. Description of the Web App that will be launched when the user presses the button. The Web App will be able to switch back to the inline mode using the method switchInlineQuery inside the Web App.", + "rst_description": "*Optional*. Description of the `Web App `_ that will be launched when the user presses the button. The Web App will be able to switch back to the inline mode using the method `switchInlineQuery `_ inside the Web App.\n", "name": "web_app", "required": false }, diff --git a/.butcher/templates/enums/index.rst.jinja2 b/.butcher/templates/enums/index.rst.jinja2 index 9cbf463a..23af1de3 100644 --- a/.butcher/templates/enums/index.rst.jinja2 +++ b/.butcher/templates/enums/index.rst.jinja2 @@ -1,3 +1,5 @@ +.. _enums: + ##### Enums ##### diff --git a/.butcher/templates/methods/entity.rst.jinja2 b/.butcher/templates/methods/entity.rst.jinja2 index d2843b17..59fa61e2 100755 --- a/.butcher/templates/methods/entity.rst.jinja2 +++ b/.butcher/templates/methods/entity.rst.jinja2 @@ -8,6 +8,7 @@ Returns: :obj:`{{ object.returning.parsed_type|type }}` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/.butcher/templates/types/entity.rst.jinja2 b/.butcher/templates/types/entity.rst.jinja2 index 6b9907c3..2fd2b06e 100644 --- a/.butcher/templates/types/entity.rst.jinja2 +++ b/.butcher/templates/types/entity.rst.jinja2 @@ -7,3 +7,4 @@ :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/.butcher/types/BotCommandScope/subtypes.yml b/.butcher/types/BotCommandScope/subtypes.yml new file mode 100644 index 00000000..6756ad51 --- /dev/null +++ b/.butcher/types/BotCommandScope/subtypes.yml @@ -0,0 +1 @@ +discriminator: "type" diff --git a/.butcher/types/BotCommandScopeAllChatAdministrators/replace.yml b/.butcher/types/BotCommandScopeAllChatAdministrators/replace.yml deleted file mode 100644 index ddb65490..00000000 --- a/.butcher/types/BotCommandScopeAllChatAdministrators/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - BotCommandScope diff --git a/.butcher/types/BotCommandScopeAllGroupChats/replace.yml b/.butcher/types/BotCommandScopeAllGroupChats/replace.yml deleted file mode 100644 index ddb65490..00000000 --- a/.butcher/types/BotCommandScopeAllGroupChats/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - BotCommandScope diff --git a/.butcher/types/BotCommandScopeAllPrivateChats/replace.yml b/.butcher/types/BotCommandScopeAllPrivateChats/replace.yml deleted file mode 100644 index ddb65490..00000000 --- a/.butcher/types/BotCommandScopeAllPrivateChats/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - BotCommandScope diff --git a/.butcher/types/BotCommandScopeChat/replace.yml b/.butcher/types/BotCommandScopeChat/replace.yml deleted file mode 100644 index ddb65490..00000000 --- a/.butcher/types/BotCommandScopeChat/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - BotCommandScope diff --git a/.butcher/types/BotCommandScopeChatAdministrators/replace.yml b/.butcher/types/BotCommandScopeChatAdministrators/replace.yml deleted file mode 100644 index ddb65490..00000000 --- a/.butcher/types/BotCommandScopeChatAdministrators/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - BotCommandScope diff --git a/.butcher/types/BotCommandScopeChatMember/replace.yml b/.butcher/types/BotCommandScopeChatMember/replace.yml deleted file mode 100644 index ddb65490..00000000 --- a/.butcher/types/BotCommandScopeChatMember/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - BotCommandScope diff --git a/.butcher/types/BotCommandScopeDefault/replace.yml b/.butcher/types/BotCommandScopeDefault/replace.yml deleted file mode 100644 index ddb65490..00000000 --- a/.butcher/types/BotCommandScopeDefault/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - BotCommandScope diff --git a/.butcher/types/Chat/aliases.yml b/.butcher/types/Chat/aliases.yml index 4538f7e1..89b5843c 100644 --- a/.butcher/types/Chat/aliases.yml +++ b/.butcher/types/Chat/aliases.yml @@ -106,3 +106,7 @@ delete_photo: set_photo: method: setChatPhoto fill: *self + +unpin_all_general_forum_topic_messages: + method: unpinAllGeneralForumTopicMessages + fill: *self diff --git a/.butcher/types/Chat/entity.json b/.butcher/types/Chat/entity.json index 7aa42c18..0a65849d 100644 --- a/.butcher/types/Chat/entity.json +++ b/.butcher/types/Chat/entity.json @@ -91,6 +91,14 @@ "name": "emoji_status_custom_emoji_id", "required": false }, + { + "type": "Integer", + "description": "Expiration date of the emoji status of the other party in a private chat in Unix time, if any. Returned only in getChat.", + "html_description": "Optional. Expiration date of the emoji status of the other party in a private chat in Unix time, if any. Returned only in getChat.", + "rst_description": "*Optional*. Expiration date of the emoji status of the other party in a private chat in Unix time, if any. Returned only in :class:`aiogram.methods.get_chat.GetChat`.\n", + "name": "emoji_status_expiration_date", + "required": false + }, { "type": "String", "description": "Bio of the other party in a private chat. Returned only in getChat.", diff --git a/.butcher/types/Chat/replace.yml b/.butcher/types/Chat/replace.yml new file mode 100644 index 00000000..60fe7d44 --- /dev/null +++ b/.butcher/types/Chat/replace.yml @@ -0,0 +1,5 @@ +annotations: + emoji_status_expiration_date: + parsed_type: + type: std + name: DateTime diff --git a/.butcher/types/ChatAdministratorRights/entity.json b/.butcher/types/ChatAdministratorRights/entity.json index 6d5951e8..e493b3e2 100644 --- a/.butcher/types/ChatAdministratorRights/entity.json +++ b/.butcher/types/ChatAdministratorRights/entity.json @@ -21,9 +21,9 @@ }, { "type": "Boolean", - "description": "True, if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", - "html_description": "True, if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", - "rst_description": ":code:`True`, if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege\n", + "description": "True, if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", + "html_description": "True, if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", + "rst_description": ":code:`True`, if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege\n", "name": "can_manage_chat", "required": true }, @@ -45,9 +45,9 @@ }, { "type": "Boolean", - "description": "True, if the administrator can restrict, ban or unban chat members", - "html_description": "True, if the administrator can restrict, ban or unban chat members", - "rst_description": ":code:`True`, if the administrator can restrict, ban or unban chat members\n", + "description": "True, if the administrator can restrict, ban or unban chat members, or access supergroup statistics", + "html_description": "True, if the administrator can restrict, ban or unban chat members, or access supergroup statistics", + "rst_description": ":code:`True`, if the administrator can restrict, ban or unban chat members, or access supergroup statistics\n", "name": "can_restrict_members", "required": true }, @@ -77,9 +77,9 @@ }, { "type": "Boolean", - "description": "True, if the administrator can post in the channel; channels only", - "html_description": "Optional. True, if the administrator can post in the channel; channels only", - "rst_description": "*Optional*. :code:`True`, if the administrator can post in the channel; channels only\n", + "description": "True, if the administrator can post messages in the channel, or access channel statistics; channels only", + "html_description": "Optional. True, if the administrator can post messages in the channel, or access channel statistics; channels only", + "rst_description": "*Optional*. :code:`True`, if the administrator can post messages in the channel, or access channel statistics; channels only\n", "name": "can_post_messages", "required": false }, @@ -99,6 +99,30 @@ "name": "can_pin_messages", "required": false }, + { + "type": "Boolean", + "description": "True, if the administrator can post stories in the channel; channels only", + "html_description": "Optional. True, if the administrator can post stories in the channel; channels only", + "rst_description": "*Optional*. :code:`True`, if the administrator can post stories in the channel; channels only\n", + "name": "can_post_stories", + "required": false + }, + { + "type": "Boolean", + "description": "True, if the administrator can edit stories posted by other users; channels only", + "html_description": "Optional. True, if the administrator can edit stories posted by other users; channels only", + "rst_description": "*Optional*. :code:`True`, if the administrator can edit stories posted by other users; channels only\n", + "name": "can_edit_stories", + "required": false + }, + { + "type": "Boolean", + "description": "True, if the administrator can delete stories posted by other users; channels only", + "html_description": "Optional. True, if the administrator can delete stories posted by other users; channels only", + "rst_description": "*Optional*. :code:`True`, if the administrator can delete stories posted by other users; channels only\n", + "name": "can_delete_stories", + "required": false + }, { "type": "Boolean", "description": "True, if the user is allowed to create, rename, close, and reopen forum topics; supergroups only", diff --git a/.butcher/types/ChatInviteLink/replace.yml b/.butcher/types/ChatInviteLink/replace.yml index 2577c954..21d6557f 100644 --- a/.butcher/types/ChatInviteLink/replace.yml +++ b/.butcher/types/ChatInviteLink/replace.yml @@ -2,4 +2,4 @@ annotations: expire_date: parsed_type: type: std - name: datetime.datetime + name: DateTime diff --git a/.butcher/types/ChatJoinRequest/aliases.yml b/.butcher/types/ChatJoinRequest/aliases.yml index aa88cebd..630c65ef 100644 --- a/.butcher/types/ChatJoinRequest/aliases.yml +++ b/.butcher/types/ChatJoinRequest/aliases.yml @@ -3,6 +3,145 @@ approve: fill: &request-target chat_id: self.chat.id user_id: self.from_user.id + decline: method: declineChatJoinRequest fill: *request-target + +answer: + method: sendMessage + fill: &fill-answer-chat + chat_id: self.chat.id + +answer_pm: + method: sendMessage + fill: &fill-answer-user + chat_id: self.user_chat_id + +answer_animation: + method: sendAnimation + fill: *fill-answer-chat + +answer_animation_pm: + method: sendAnimation + fill: *fill-answer-user + +answer_audio: + method: sendAudio + fill: *fill-answer-chat + +answer_audio_pm: + method: sendAudio + fill: *fill-answer-user + +answer_contact: + method: sendContact + fill: *fill-answer-chat + +answer_contact_pm: + method: sendContact + fill: *fill-answer-user + +answer_document: + method: sendDocument + fill: *fill-answer-chat + +answer_document_pm: + method: sendDocument + fill: *fill-answer-user + +answer_game: + method: sendGame + fill: *fill-answer-chat + +answer_game_pm: + method: sendGame + fill: *fill-answer-user + +answer_invoice: + method: sendInvoice + fill: *fill-answer-chat + +answer_invoice_pm: + method: sendInvoice + fill: *fill-answer-user + +answer_location: + method: sendLocation + fill: *fill-answer-chat + +answer_location_pm: + method: sendLocation + fill: *fill-answer-user + +answer_media_group: + method: sendMediaGroup + fill: *fill-answer-chat + +answer_media_group_pm: + method: sendMediaGroup + fill: *fill-answer-user + +answer_photo: + method: sendPhoto + fill: *fill-answer-chat + +answer_photo_pm: + method: sendPhoto + fill: *fill-answer-user + +answer_poll: + method: sendPoll + fill: *fill-answer-chat + +answer_poll_pm: + method: sendPoll + fill: *fill-answer-user + +answer_dice: + method: sendDice + fill: *fill-answer-chat + +answer_dice_pm: + method: sendDice + fill: *fill-answer-user + +answer_sticker: + method: sendSticker + fill: *fill-answer-chat + +answer_sticker_pm: + method: sendSticker + fill: *fill-answer-user + +answer_venue: + method: sendVenue + fill: *fill-answer-chat + +answer_venue_pm: + method: sendVenue + fill: *fill-answer-user + +answer_video: + method: sendVideo + fill: *fill-answer-chat + +answer_video_pm: + method: sendVideo + fill: *fill-answer-user + +answer_video_note: + method: sendVideoNote + fill: *fill-answer-chat + +answer_video_note_pm: + method: sendVideoNote + fill: *fill-answer-user + +answer_voice: + method: sendVoice + fill: *fill-answer-chat + +answer_voice_pm: + method: sendVoice + fill: *fill-answer-user diff --git a/.butcher/types/ChatJoinRequest/entity.json b/.butcher/types/ChatJoinRequest/entity.json index 99fa2d7d..25cfe9e3 100644 --- a/.butcher/types/ChatJoinRequest/entity.json +++ b/.butcher/types/ChatJoinRequest/entity.json @@ -29,9 +29,9 @@ }, { "type": "Integer", - "description": "Identifier of a private chat with the user who sent the join request. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot can use this identifier for 24 hours to send messages until the join request is processed, assuming no other administrator contacted the user.", - "html_description": "Identifier of a private chat with the user who sent the join request. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot can use this identifier for 24 hours to send messages until the join request is processed, assuming no other administrator contacted the user.", - "rst_description": "Identifier of a private chat with the user who sent the join request. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot can use this identifier for 24 hours to send messages until the join request is processed, assuming no other administrator contacted the user.\n", + "description": "Identifier of a private chat with the user who sent the join request. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot can use this identifier for 5 minutes to send messages until the join request is processed, assuming no other administrator contacted the user.", + "html_description": "Identifier of a private chat with the user who sent the join request. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot can use this identifier for 5 minutes to send messages until the join request is processed, assuming no other administrator contacted the user.", + "rst_description": "Identifier of a private chat with the user who sent the join request. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot can use this identifier for 5 minutes to send messages until the join request is processed, assuming no other administrator contacted the user.\n", "name": "user_chat_id", "required": true }, diff --git a/.butcher/types/ChatJoinRequest/replace.yml b/.butcher/types/ChatJoinRequest/replace.yml index 9a3a2842..80c48d76 100644 --- a/.butcher/types/ChatJoinRequest/replace.yml +++ b/.butcher/types/ChatJoinRequest/replace.yml @@ -2,4 +2,4 @@ annotations: date: parsed_type: type: std - name: datetime.datetime + name: DateTime diff --git a/.butcher/types/ChatMember/extend.yml b/.butcher/types/ChatMember/extend.yml deleted file mode 100644 index 01ef4960..00000000 --- a/.butcher/types/ChatMember/extend.yml +++ /dev/null @@ -1,27 +0,0 @@ -define: - - type: "String" - description: "The member's status in the chat" - html_description: "The member's status in the chat" - rst_description: "The member's status in the chat" - name: "status" - required: true - -clone: - - ChatMemberOwner: - exclude: - - status - - ChatMemberAdministrator: - exclude: - - status - - ChatMemberMember: - exclude: - - status - - ChatMemberRestricted: - exclude: - - status - - ChatMemberLeft: - exclude: - - status - - ChatMemberBanned: - exclude: - - status diff --git a/.butcher/types/ChatMember/replace.yml b/.butcher/types/ChatMember/replace.yml index 0af85473..e264e991 100644 --- a/.butcher/types/ChatMember/replace.yml +++ b/.butcher/types/ChatMember/replace.yml @@ -2,4 +2,4 @@ annotations: until_date: parsed_type: type: std - name: datetime.datetime + name: DateTime diff --git a/.butcher/types/ChatMember/subtypes.yml b/.butcher/types/ChatMember/subtypes.yml new file mode 100644 index 00000000..95832398 --- /dev/null +++ b/.butcher/types/ChatMember/subtypes.yml @@ -0,0 +1 @@ +discriminator: "status" diff --git a/.butcher/types/ChatMemberAdministrator/entity.json b/.butcher/types/ChatMemberAdministrator/entity.json index 577d9daf..4679a1e0 100644 --- a/.butcher/types/ChatMemberAdministrator/entity.json +++ b/.butcher/types/ChatMemberAdministrator/entity.json @@ -45,9 +45,9 @@ }, { "type": "Boolean", - "description": "True, if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", - "html_description": "True, if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", - "rst_description": ":code:`True`, if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege\n", + "description": "True, if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", + "html_description": "True, if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege", + "rst_description": ":code:`True`, if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege\n", "name": "can_manage_chat", "required": true }, @@ -69,9 +69,9 @@ }, { "type": "Boolean", - "description": "True, if the administrator can restrict, ban or unban chat members", - "html_description": "True, if the administrator can restrict, ban or unban chat members", - "rst_description": ":code:`True`, if the administrator can restrict, ban or unban chat members\n", + "description": "True, if the administrator can restrict, ban or unban chat members, or access supergroup statistics", + "html_description": "True, if the administrator can restrict, ban or unban chat members, or access supergroup statistics", + "rst_description": ":code:`True`, if the administrator can restrict, ban or unban chat members, or access supergroup statistics\n", "name": "can_restrict_members", "required": true }, @@ -101,9 +101,9 @@ }, { "type": "Boolean", - "description": "True, if the administrator can post in the channel; channels only", - "html_description": "Optional. True, if the administrator can post in the channel; channels only", - "rst_description": "*Optional*. :code:`True`, if the administrator can post in the channel; channels only\n", + "description": "True, if the administrator can post messages in the channel, or access channel statistics; channels only", + "html_description": "Optional. True, if the administrator can post messages in the channel, or access channel statistics; channels only", + "rst_description": "*Optional*. :code:`True`, if the administrator can post messages in the channel, or access channel statistics; channels only\n", "name": "can_post_messages", "required": false }, @@ -123,6 +123,30 @@ "name": "can_pin_messages", "required": false }, + { + "type": "Boolean", + "description": "True, if the administrator can post stories in the channel; channels only", + "html_description": "Optional. True, if the administrator can post stories in the channel; channels only", + "rst_description": "*Optional*. :code:`True`, if the administrator can post stories in the channel; channels only\n", + "name": "can_post_stories", + "required": false + }, + { + "type": "Boolean", + "description": "True, if the administrator can edit stories posted by other users; channels only", + "html_description": "Optional. True, if the administrator can edit stories posted by other users; channels only", + "rst_description": "*Optional*. :code:`True`, if the administrator can edit stories posted by other users; channels only\n", + "name": "can_edit_stories", + "required": false + }, + { + "type": "Boolean", + "description": "True, if the administrator can delete stories posted by other users; channels only", + "html_description": "Optional. True, if the administrator can delete stories posted by other users; channels only", + "rst_description": "*Optional*. :code:`True`, if the administrator can delete stories posted by other users; channels only\n", + "name": "can_delete_stories", + "required": false + }, { "type": "Boolean", "description": "True, if the user is allowed to create, rename, close, and reopen forum topics; supergroups only", diff --git a/.butcher/types/ChatMemberAdministrator/replace.yml b/.butcher/types/ChatMemberAdministrator/replace.yml deleted file mode 100644 index 619942cd..00000000 --- a/.butcher/types/ChatMemberAdministrator/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - ChatMember diff --git a/.butcher/types/ChatMemberBanned/entity.json b/.butcher/types/ChatMemberBanned/entity.json index 49d42e20..4da411ec 100644 --- a/.butcher/types/ChatMemberBanned/entity.json +++ b/.butcher/types/ChatMemberBanned/entity.json @@ -29,9 +29,9 @@ }, { "type": "Integer", - "description": "Date when restrictions will be lifted for this user; unix time. If 0, then the user is banned forever", - "html_description": "Date when restrictions will be lifted for this user; unix time. If 0, then the user is banned forever", - "rst_description": "Date when restrictions will be lifted for this user; unix time. If 0, then the user is banned forever\n", + "description": "Date when restrictions will be lifted for this user; Unix time. If 0, then the user is banned forever", + "html_description": "Date when restrictions will be lifted for this user; Unix time. If 0, then the user is banned forever", + "rst_description": "Date when restrictions will be lifted for this user; Unix time. If 0, then the user is banned forever\n", "name": "until_date", "required": true } diff --git a/.butcher/types/ChatMemberBanned/replace.yml b/.butcher/types/ChatMemberBanned/replace.yml index 6a3882af..e264e991 100644 --- a/.butcher/types/ChatMemberBanned/replace.yml +++ b/.butcher/types/ChatMemberBanned/replace.yml @@ -1,7 +1,5 @@ -bases: - - ChatMember annotations: until_date: parsed_type: type: std - name: datetime.datetime + name: DateTime diff --git a/.butcher/types/ChatMemberLeft/replace.yml b/.butcher/types/ChatMemberLeft/replace.yml deleted file mode 100644 index 619942cd..00000000 --- a/.butcher/types/ChatMemberLeft/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - ChatMember diff --git a/.butcher/types/ChatMemberMember/replace.yml b/.butcher/types/ChatMemberMember/replace.yml deleted file mode 100644 index 619942cd..00000000 --- a/.butcher/types/ChatMemberMember/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - ChatMember diff --git a/.butcher/types/ChatMemberOwner/replace.yml b/.butcher/types/ChatMemberOwner/replace.yml deleted file mode 100644 index 619942cd..00000000 --- a/.butcher/types/ChatMemberOwner/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - ChatMember diff --git a/.butcher/types/ChatMemberRestricted/entity.json b/.butcher/types/ChatMemberRestricted/entity.json index 958ad57a..1c46132d 100644 --- a/.butcher/types/ChatMemberRestricted/entity.json +++ b/.butcher/types/ChatMemberRestricted/entity.json @@ -149,9 +149,9 @@ }, { "type": "Integer", - "description": "Date when restrictions will be lifted for this user; unix time. If 0, then the user is restricted forever", - "html_description": "Date when restrictions will be lifted for this user; unix time. If 0, then the user is restricted forever", - "rst_description": "Date when restrictions will be lifted for this user; unix time. If 0, then the user is restricted forever\n", + "description": "Date when restrictions will be lifted for this user; Unix time. If 0, then the user is restricted forever", + "html_description": "Date when restrictions will be lifted for this user; Unix time. If 0, then the user is restricted forever", + "rst_description": "Date when restrictions will be lifted for this user; Unix time. If 0, then the user is restricted forever\n", "name": "until_date", "required": true } diff --git a/.butcher/types/ChatMemberRestricted/replace.yml b/.butcher/types/ChatMemberRestricted/replace.yml index 6a3882af..e264e991 100644 --- a/.butcher/types/ChatMemberRestricted/replace.yml +++ b/.butcher/types/ChatMemberRestricted/replace.yml @@ -1,7 +1,5 @@ -bases: - - ChatMember annotations: until_date: parsed_type: type: std - name: datetime.datetime + name: DateTime diff --git a/.butcher/types/ChatMemberUpdated/aliases.yml b/.butcher/types/ChatMemberUpdated/aliases.yml new file mode 100644 index 00000000..ee220974 --- /dev/null +++ b/.butcher/types/ChatMemberUpdated/aliases.yml @@ -0,0 +1,68 @@ +answer: + method: sendMessage + fill: &fill-answer + chat_id: self.chat.id + +answer_animation: + method: sendAnimation + fill: *fill-answer + +answer_audio: + method: sendAudio + fill: *fill-answer + +answer_contact: + method: sendContact + fill: *fill-answer + +answer_document: + method: sendDocument + fill: *fill-answer + +answer_game: + method: sendGame + fill: *fill-answer + +answer_invoice: + method: sendInvoice + fill: *fill-answer + +answer_location: + method: sendLocation + fill: *fill-answer + +answer_media_group: + method: sendMediaGroup + fill: *fill-answer + +answer_photo: + method: sendPhoto + fill: *fill-answer + +answer_poll: + method: sendPoll + fill: *fill-answer + +answer_dice: + method: sendDice + fill: *fill-answer + +answer_sticker: + method: sendSticker + fill: *fill-answer + +answer_venue: + method: sendVenue + fill: *fill-answer + +answer_video: + method: sendVideo + fill: *fill-answer + +answer_video_note: + method: sendVideoNote + fill: *fill-answer + +answer_voice: + method: sendVoice + fill: *fill-answer diff --git a/.butcher/types/ChatMemberUpdated/replace.yml b/.butcher/types/ChatMemberUpdated/replace.yml index 66c1b64c..80c48d76 100644 --- a/.butcher/types/ChatMemberUpdated/replace.yml +++ b/.butcher/types/ChatMemberUpdated/replace.yml @@ -2,33 +2,4 @@ annotations: date: parsed_type: type: std - name: datetime.datetime - old_chat_member: &chat-member-type - parsed_type: - type: union - items: - - type: entity - references: - category: types - name: ChatMemberOwner - - type: entity - references: - category: types - name: ChatMemberAdministrator - - type: entity - references: - category: types - name: ChatMemberMember - - type: entity - references: - category: types - name: ChatMemberRestricted - - type: entity - references: - category: types - name: ChatMemberLeft - - type: entity - references: - category: types - name: ChatMemberBanned - new_chat_member: *chat-member-type + name: DateTime diff --git a/.butcher/types/InlineKeyboardButton/entity.json b/.butcher/types/InlineKeyboardButton/entity.json index c7919e99..9c1baae5 100644 --- a/.butcher/types/InlineKeyboardButton/entity.json +++ b/.butcher/types/InlineKeyboardButton/entity.json @@ -53,9 +53,9 @@ }, { "type": "String", - "description": "If set, pressing the button will prompt the user to select one of their chats, open that chat and insert the bot's username and the specified inline query in the input field. May be empty, in which case just the bot's username will be inserted.\n\nNote: This offers an easy way for users to start using your bot in inline mode when they are currently in a private chat with it. Especially useful when combined with switch_pm… actions - in this case the user will be automatically returned to the chat they switched from, skipping the chat selection screen.", - "html_description": "Optional. If set, pressing the button will prompt the user to select one of their chats, open that chat and insert the bot's username and the specified inline query in the input field. May be empty, in which case just the bot's username will be inserted.
\n
\nNote: This offers an easy way for users to start using your bot in inline mode when they are currently in a private chat with it. Especially useful when combined with switch_pm… actions - in this case the user will be automatically returned to the chat they switched from, skipping the chat selection screen.", - "rst_description": "*Optional*. If set, pressing the button will prompt the user to select one of their chats, open that chat and insert the bot's username and the specified inline query in the input field. May be empty, in which case just the bot's username will be inserted.\n\n\n\n**Note:** This offers an easy way for users to start using your bot in `inline mode `_ when they are currently in a private chat with it. Especially useful when combined with `https://core.telegram.org/bots/api#answerinlinequery `_ *switch_pm…* actions - in this case the user will be automatically returned to the chat they switched from, skipping the chat selection screen.\n", + "description": "If set, pressing the button will prompt the user to select one of their chats, open that chat and insert the bot's username and the specified inline query in the input field. May be empty, in which case just the bot's username will be inserted.", + "html_description": "Optional. If set, pressing the button will prompt the user to select one of their chats, open that chat and insert the bot's username and the specified inline query in the input field. May be empty, in which case just the bot's username will be inserted.", + "rst_description": "*Optional*. If set, pressing the button will prompt the user to select one of their chats, open that chat and insert the bot's username and the specified inline query in the input field. May be empty, in which case just the bot's username will be inserted.\n", "name": "switch_inline_query", "required": false }, diff --git a/.butcher/types/InlineQueryResult/subtypes.yml b/.butcher/types/InlineQueryResult/subtypes.yml new file mode 100644 index 00000000..6756ad51 --- /dev/null +++ b/.butcher/types/InlineQueryResult/subtypes.yml @@ -0,0 +1 @@ +discriminator: "type" diff --git a/.butcher/types/InlineQueryResultArticle/replace.yml b/.butcher/types/InlineQueryResultArticle/replace.yml deleted file mode 100644 index cbe6bc26..00000000 --- a/.butcher/types/InlineQueryResultArticle/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - InlineQueryResult diff --git a/.butcher/types/InlineQueryResultAudio/replace.yml b/.butcher/types/InlineQueryResultAudio/replace.yml index cd89306d..e87fb9b3 100644 --- a/.butcher/types/InlineQueryResultAudio/replace.yml +++ b/.butcher/types/InlineQueryResultAudio/replace.yml @@ -1,6 +1,3 @@ -bases: - - InlineQueryResult - annotations: parse_mode: value: UNSET_PARSE_MODE diff --git a/.butcher/types/InlineQueryResultCachedAudio/replace.yml b/.butcher/types/InlineQueryResultCachedAudio/replace.yml index cd89306d..e87fb9b3 100644 --- a/.butcher/types/InlineQueryResultCachedAudio/replace.yml +++ b/.butcher/types/InlineQueryResultCachedAudio/replace.yml @@ -1,6 +1,3 @@ -bases: - - InlineQueryResult - annotations: parse_mode: value: UNSET_PARSE_MODE diff --git a/.butcher/types/InlineQueryResultCachedDocument/replace.yml b/.butcher/types/InlineQueryResultCachedDocument/replace.yml index cd89306d..e87fb9b3 100644 --- a/.butcher/types/InlineQueryResultCachedDocument/replace.yml +++ b/.butcher/types/InlineQueryResultCachedDocument/replace.yml @@ -1,6 +1,3 @@ -bases: - - InlineQueryResult - annotations: parse_mode: value: UNSET_PARSE_MODE diff --git a/.butcher/types/InlineQueryResultCachedGif/replace.yml b/.butcher/types/InlineQueryResultCachedGif/replace.yml index cd89306d..e87fb9b3 100644 --- a/.butcher/types/InlineQueryResultCachedGif/replace.yml +++ b/.butcher/types/InlineQueryResultCachedGif/replace.yml @@ -1,6 +1,3 @@ -bases: - - InlineQueryResult - annotations: parse_mode: value: UNSET_PARSE_MODE diff --git a/.butcher/types/InlineQueryResultCachedMpeg4Gif/replace.yml b/.butcher/types/InlineQueryResultCachedMpeg4Gif/replace.yml index cd89306d..e87fb9b3 100644 --- a/.butcher/types/InlineQueryResultCachedMpeg4Gif/replace.yml +++ b/.butcher/types/InlineQueryResultCachedMpeg4Gif/replace.yml @@ -1,6 +1,3 @@ -bases: - - InlineQueryResult - annotations: parse_mode: value: UNSET_PARSE_MODE diff --git a/.butcher/types/InlineQueryResultCachedPhoto/replace.yml b/.butcher/types/InlineQueryResultCachedPhoto/replace.yml index cd89306d..e87fb9b3 100644 --- a/.butcher/types/InlineQueryResultCachedPhoto/replace.yml +++ b/.butcher/types/InlineQueryResultCachedPhoto/replace.yml @@ -1,6 +1,3 @@ -bases: - - InlineQueryResult - annotations: parse_mode: value: UNSET_PARSE_MODE diff --git a/.butcher/types/InlineQueryResultCachedSticker/replace.yml b/.butcher/types/InlineQueryResultCachedSticker/replace.yml deleted file mode 100644 index cbe6bc26..00000000 --- a/.butcher/types/InlineQueryResultCachedSticker/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - InlineQueryResult diff --git a/.butcher/types/InlineQueryResultCachedVideo/replace.yml b/.butcher/types/InlineQueryResultCachedVideo/replace.yml index cd89306d..e87fb9b3 100644 --- a/.butcher/types/InlineQueryResultCachedVideo/replace.yml +++ b/.butcher/types/InlineQueryResultCachedVideo/replace.yml @@ -1,6 +1,3 @@ -bases: - - InlineQueryResult - annotations: parse_mode: value: UNSET_PARSE_MODE diff --git a/.butcher/types/InlineQueryResultCachedVoice/replace.yml b/.butcher/types/InlineQueryResultCachedVoice/replace.yml index cd89306d..e87fb9b3 100644 --- a/.butcher/types/InlineQueryResultCachedVoice/replace.yml +++ b/.butcher/types/InlineQueryResultCachedVoice/replace.yml @@ -1,6 +1,3 @@ -bases: - - InlineQueryResult - annotations: parse_mode: value: UNSET_PARSE_MODE diff --git a/.butcher/types/InlineQueryResultContact/replace.yml b/.butcher/types/InlineQueryResultContact/replace.yml deleted file mode 100644 index cbe6bc26..00000000 --- a/.butcher/types/InlineQueryResultContact/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - InlineQueryResult diff --git a/.butcher/types/InlineQueryResultDocument/replace.yml b/.butcher/types/InlineQueryResultDocument/replace.yml index cd89306d..e87fb9b3 100644 --- a/.butcher/types/InlineQueryResultDocument/replace.yml +++ b/.butcher/types/InlineQueryResultDocument/replace.yml @@ -1,6 +1,3 @@ -bases: - - InlineQueryResult - annotations: parse_mode: value: UNSET_PARSE_MODE diff --git a/.butcher/types/InlineQueryResultGame/replace.yml b/.butcher/types/InlineQueryResultGame/replace.yml deleted file mode 100644 index cbe6bc26..00000000 --- a/.butcher/types/InlineQueryResultGame/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - InlineQueryResult diff --git a/.butcher/types/InlineQueryResultGif/replace.yml b/.butcher/types/InlineQueryResultGif/replace.yml index cd89306d..e87fb9b3 100644 --- a/.butcher/types/InlineQueryResultGif/replace.yml +++ b/.butcher/types/InlineQueryResultGif/replace.yml @@ -1,6 +1,3 @@ -bases: - - InlineQueryResult - annotations: parse_mode: value: UNSET_PARSE_MODE diff --git a/.butcher/types/InlineQueryResultLocation/replace.yml b/.butcher/types/InlineQueryResultLocation/replace.yml deleted file mode 100644 index cbe6bc26..00000000 --- a/.butcher/types/InlineQueryResultLocation/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - InlineQueryResult diff --git a/.butcher/types/InlineQueryResultMpeg4Gif/replace.yml b/.butcher/types/InlineQueryResultMpeg4Gif/replace.yml index cd89306d..e87fb9b3 100644 --- a/.butcher/types/InlineQueryResultMpeg4Gif/replace.yml +++ b/.butcher/types/InlineQueryResultMpeg4Gif/replace.yml @@ -1,6 +1,3 @@ -bases: - - InlineQueryResult - annotations: parse_mode: value: UNSET_PARSE_MODE diff --git a/.butcher/types/InlineQueryResultPhoto/replace.yml b/.butcher/types/InlineQueryResultPhoto/replace.yml index cd89306d..e87fb9b3 100644 --- a/.butcher/types/InlineQueryResultPhoto/replace.yml +++ b/.butcher/types/InlineQueryResultPhoto/replace.yml @@ -1,6 +1,3 @@ -bases: - - InlineQueryResult - annotations: parse_mode: value: UNSET_PARSE_MODE diff --git a/.butcher/types/InlineQueryResultVenue/replace.yml b/.butcher/types/InlineQueryResultVenue/replace.yml deleted file mode 100644 index cbe6bc26..00000000 --- a/.butcher/types/InlineQueryResultVenue/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - InlineQueryResult diff --git a/.butcher/types/InlineQueryResultVideo/replace.yml b/.butcher/types/InlineQueryResultVideo/replace.yml index cd89306d..e87fb9b3 100644 --- a/.butcher/types/InlineQueryResultVideo/replace.yml +++ b/.butcher/types/InlineQueryResultVideo/replace.yml @@ -1,6 +1,3 @@ -bases: - - InlineQueryResult - annotations: parse_mode: value: UNSET_PARSE_MODE diff --git a/.butcher/types/InlineQueryResultVoice/replace.yml b/.butcher/types/InlineQueryResultVoice/replace.yml index 6c32c60f..e87fb9b3 100644 --- a/.butcher/types/InlineQueryResultVoice/replace.yml +++ b/.butcher/types/InlineQueryResultVoice/replace.yml @@ -1,5 +1,3 @@ -bases: - - InlineQueryResult annotations: parse_mode: value: UNSET_PARSE_MODE diff --git a/.butcher/types/InlineQueryResultsButton/entity.json b/.butcher/types/InlineQueryResultsButton/entity.json index 169b1c2c..a66c2f3b 100644 --- a/.butcher/types/InlineQueryResultsButton/entity.json +++ b/.butcher/types/InlineQueryResultsButton/entity.json @@ -21,9 +21,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 switch back to the inline mode using the method web_app_switch_inline_query inside the Web App.", - "html_description": "Optional. Description of the Web App that will be launched when the user presses the button. The Web App will be able to switch back to the inline mode using the method web_app_switch_inline_query inside the Web App.", - "rst_description": "*Optional*. Description of the `Web App `_ that will be launched when the user presses the button. The Web App will be able to switch back to the inline mode using the method *web_app_switch_inline_query* inside the Web App.\n", + "description": "Description of the Web App that will be launched when the user presses the button. The Web App will be able to switch back to the inline mode using the method switchInlineQuery inside the Web App.", + "html_description": "Optional. Description of the Web App that will be launched when the user presses the button. The Web App will be able to switch back to the inline mode using the method switchInlineQuery inside the Web App.", + "rst_description": "*Optional*. Description of the `Web App `_ that will be launched when the user presses the button. The Web App will be able to switch back to the inline mode using the method `switchInlineQuery `_ inside the Web App.\n", "name": "web_app", "required": false }, diff --git a/.butcher/types/InputContactMessageContent/replace.yml b/.butcher/types/InputContactMessageContent/replace.yml deleted file mode 100644 index 29166299..00000000 --- a/.butcher/types/InputContactMessageContent/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - InputMessageContent diff --git a/.butcher/types/InputInvoiceMessageContent/replace.yml b/.butcher/types/InputInvoiceMessageContent/replace.yml deleted file mode 100644 index 29166299..00000000 --- a/.butcher/types/InputInvoiceMessageContent/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - InputMessageContent diff --git a/.butcher/types/InputLocationMessageContent/replace.yml b/.butcher/types/InputLocationMessageContent/replace.yml deleted file mode 100644 index 29166299..00000000 --- a/.butcher/types/InputLocationMessageContent/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - InputMessageContent diff --git a/.butcher/types/InputMedia/subtypes.yml b/.butcher/types/InputMedia/subtypes.yml new file mode 100644 index 00000000..6756ad51 --- /dev/null +++ b/.butcher/types/InputMedia/subtypes.yml @@ -0,0 +1 @@ +discriminator: "type" diff --git a/.butcher/types/InputMediaAnimation/replace.yml b/.butcher/types/InputMediaAnimation/replace.yml index a2756429..be3f441b 100644 --- a/.butcher/types/InputMediaAnimation/replace.yml +++ b/.butcher/types/InputMediaAnimation/replace.yml @@ -1,5 +1,3 @@ -bases: - - InputMedia annotations: media: parsed_type: diff --git a/.butcher/types/InputMediaAudio/replace.yml b/.butcher/types/InputMediaAudio/replace.yml index a2756429..be3f441b 100644 --- a/.butcher/types/InputMediaAudio/replace.yml +++ b/.butcher/types/InputMediaAudio/replace.yml @@ -1,5 +1,3 @@ -bases: - - InputMedia annotations: media: parsed_type: diff --git a/.butcher/types/InputMediaDocument/replace.yml b/.butcher/types/InputMediaDocument/replace.yml index a2756429..be3f441b 100644 --- a/.butcher/types/InputMediaDocument/replace.yml +++ b/.butcher/types/InputMediaDocument/replace.yml @@ -1,5 +1,3 @@ -bases: - - InputMedia annotations: media: parsed_type: diff --git a/.butcher/types/InputMediaPhoto/replace.yml b/.butcher/types/InputMediaPhoto/replace.yml index a2756429..be3f441b 100644 --- a/.butcher/types/InputMediaPhoto/replace.yml +++ b/.butcher/types/InputMediaPhoto/replace.yml @@ -1,5 +1,3 @@ -bases: - - InputMedia annotations: media: parsed_type: diff --git a/.butcher/types/InputMediaVideo/replace.yml b/.butcher/types/InputMediaVideo/replace.yml index a2756429..be3f441b 100644 --- a/.butcher/types/InputMediaVideo/replace.yml +++ b/.butcher/types/InputMediaVideo/replace.yml @@ -1,5 +1,3 @@ -bases: - - InputMedia annotations: media: parsed_type: diff --git a/.butcher/types/InputMessageContent/subtypes.yml b/.butcher/types/InputMessageContent/subtypes.yml new file mode 100644 index 00000000..ffcd4415 --- /dev/null +++ b/.butcher/types/InputMessageContent/subtypes.yml @@ -0,0 +1 @@ +{ } diff --git a/.butcher/types/InputTextMessageContent/replace.yml b/.butcher/types/InputTextMessageContent/replace.yml index 63741e83..ebc1d7e9 100644 --- a/.butcher/types/InputTextMessageContent/replace.yml +++ b/.butcher/types/InputTextMessageContent/replace.yml @@ -1,6 +1,3 @@ -bases: - - InputMessageContent - annotations: parse_mode: value: UNSET_PARSE_MODE diff --git a/.butcher/types/InputVenueMessageContent/replace.yml b/.butcher/types/InputVenueMessageContent/replace.yml deleted file mode 100644 index 29166299..00000000 --- a/.butcher/types/InputVenueMessageContent/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - InputMessageContent diff --git a/.butcher/types/MenuButton/subtypes.yml b/.butcher/types/MenuButton/subtypes.yml new file mode 100644 index 00000000..6756ad51 --- /dev/null +++ b/.butcher/types/MenuButton/subtypes.yml @@ -0,0 +1 @@ +discriminator: "type" diff --git a/.butcher/types/MenuButtonCommands/replace.yml b/.butcher/types/MenuButtonCommands/replace.yml deleted file mode 100644 index cc566462..00000000 --- a/.butcher/types/MenuButtonCommands/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - MenuButton diff --git a/.butcher/types/MenuButtonDefault/replace.yml b/.butcher/types/MenuButtonDefault/replace.yml deleted file mode 100644 index cc566462..00000000 --- a/.butcher/types/MenuButtonDefault/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - MenuButton diff --git a/.butcher/types/MenuButtonWebApp/replace.yml b/.butcher/types/MenuButtonWebApp/replace.yml deleted file mode 100644 index cc566462..00000000 --- a/.butcher/types/MenuButtonWebApp/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - MenuButton diff --git a/.butcher/types/Message/aliases.yml b/.butcher/types/Message/aliases.yml index 4d731875..341919cc 100644 --- a/.butcher/types/Message/aliases.yml +++ b/.butcher/types/Message/aliases.yml @@ -1,189 +1,242 @@ 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 message_thread_id: self.message_thread_id if self.is_topic_message else None reply: method: sendMessage + code: *assert-chat fill: &fill-reply <<: *fill-answer reply_to_message_id: self.message_id answer_animation: method: sendAnimation + code: *assert-chat fill: *fill-answer reply_animation: method: sendAnimation + code: *assert-chat fill: *fill-reply answer_audio: method: sendAudio + code: *assert-chat fill: *fill-answer reply_audio: method: sendAudio + code: *assert-chat fill: *fill-reply answer_contact: method: sendContact + code: *assert-chat fill: *fill-answer reply_contact: method: sendContact + code: *assert-chat fill: *fill-reply answer_document: method: sendDocument + code: *assert-chat fill: *fill-answer reply_document: method: sendDocument + code: *assert-chat fill: *fill-reply answer_game: method: sendGame + code: *assert-chat fill: *fill-answer reply_game: method: sendGame + code: *assert-chat fill: *fill-reply answer_invoice: method: sendInvoice + code: *assert-chat fill: *fill-answer reply_invoice: method: sendInvoice + code: *assert-chat fill: *fill-reply answer_location: method: sendLocation + code: *assert-chat fill: *fill-answer reply_location: method: sendLocation + code: *assert-chat fill: *fill-reply answer_media_group: method: sendMediaGroup + code: *assert-chat fill: *fill-answer reply_media_group: method: sendMediaGroup + code: *assert-chat fill: *fill-reply answer_photo: method: sendPhoto + code: *assert-chat fill: *fill-answer reply_photo: method: sendPhoto + code: *assert-chat fill: *fill-reply answer_poll: method: sendPoll + code: *assert-chat fill: *fill-answer reply_poll: method: sendPoll + code: *assert-chat fill: *fill-reply answer_dice: method: sendDice + code: *assert-chat fill: *fill-answer reply_dice: method: sendDice + code: *assert-chat fill: *fill-reply answer_sticker: method: sendSticker + code: *assert-chat fill: *fill-answer reply_sticker: method: sendSticker + code: *assert-chat fill: *fill-reply answer_venue: method: sendVenue + code: *assert-chat fill: *fill-answer reply_venue: method: sendVenue + code: *assert-chat fill: *fill-reply answer_video: method: sendVideo + code: *assert-chat fill: *fill-answer reply_video: method: sendVideo + code: *assert-chat fill: *fill-reply answer_video_note: method: sendVideoNote + code: *assert-chat fill: *fill-answer reply_video_note: method: sendVideoNote + code: *assert-chat fill: *fill-reply answer_voice: method: sendVoice + code: *assert-chat fill: *fill-answer reply_voice: method: sendVoice + code: *assert-chat fill: *fill-reply copy_to: method: copyMessage + code: *assert-chat + fill: + from_chat_id: self.chat.id + message_id: self.message_id + +forward: + method: forwardMessage + code: *assert-chat fill: from_chat_id: self.chat.id message_id: self.message_id edit_text: method: editMessageText + code: *assert-chat fill: &message-target chat_id: self.chat.id message_id: self.message_id -forward: - method: forwardMessage - fill: - from_chat_id: self.chat.id - message_id: self.message_id - edit_media: method: editMessageMedia fill: *message-target + code: *assert-chat edit_reply_markup: method: editMessageReplyMarkup + code: *assert-chat fill: *message-target +delete_reply_markup: + method: editMessageReplyMarkup + code: *assert-chat + fill: + <<: *message-target + reply_markup: None + edit_live_location: method: editMessageLiveLocation + code: *assert-chat fill: *message-target stop_live_location: method: stopMessageLiveLocation + code: *assert-chat fill: *message-target edit_caption: method: editMessageCaption + code: *assert-chat fill: *message-target delete: method: deleteMessage + code: *assert-chat fill: *message-target pin: method: pinChatMessage + code: *assert-chat fill: *message-target unpin: method: unpinChatMessage + code: *assert-chat fill: *message-target diff --git a/.butcher/types/Message/entity.json b/.butcher/types/Message/entity.json index cd5e27cb..993d37eb 100644 --- a/.butcher/types/Message/entity.json +++ b/.butcher/types/Message/entity.json @@ -227,6 +227,14 @@ "name": "sticker", "required": false }, + { + "type": "Story", + "description": "Message is a forwarded story", + "html_description": "Optional. Message is a forwarded story", + "rst_description": "*Optional*. Message is a forwarded story\n", + "name": "story", + "required": false + }, { "type": "Video", "description": "Message is a video, information about the video", @@ -461,9 +469,9 @@ }, { "type": "WriteAccessAllowed", - "description": "Service message: the user allowed the bot added to the attachment menu to write messages", - "html_description": "Optional. Service message: the user allowed the bot added to the attachment menu to write messages", - "rst_description": "*Optional*. Service message: the user allowed the bot added to the attachment menu to write messages\n", + "description": "Service message: the user allowed the bot to write messages after adding it to the attachment or side menu, launching a Web App from a link, or accepting an explicit request from a Web App sent by the method requestWriteAccess", + "html_description": "Optional. Service message: the user allowed the bot to write messages after adding it to the attachment or side menu, launching a Web App from a link, or accepting an explicit request from a Web App sent by the method requestWriteAccess", + "rst_description": "*Optional*. Service message: the user allowed the bot to write messages after adding it to the attachment or side menu, launching a Web App from a link, or accepting an explicit request from a Web App sent by the method `requestWriteAccess `_\n", "name": "write_access_allowed", "required": false }, diff --git a/.butcher/types/Message/replace.yml b/.butcher/types/Message/replace.yml index 9a3a2842..5fa030bf 100644 --- a/.butcher/types/Message/replace.yml +++ b/.butcher/types/Message/replace.yml @@ -2,4 +2,8 @@ annotations: date: parsed_type: type: std - name: datetime.datetime + name: DateTime + forward_date: + parsed_type: + type: std + name: DateTime diff --git a/.butcher/types/PassportElementError/subtypes.yml b/.butcher/types/PassportElementError/subtypes.yml new file mode 100644 index 00000000..fd3f58ea --- /dev/null +++ b/.butcher/types/PassportElementError/subtypes.yml @@ -0,0 +1 @@ +discriminator: "source" diff --git a/.butcher/types/PassportElementErrorDataField/replace.yml b/.butcher/types/PassportElementErrorDataField/replace.yml deleted file mode 100644 index 105b390f..00000000 --- a/.butcher/types/PassportElementErrorDataField/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - PassportElementError diff --git a/.butcher/types/PassportElementErrorFile/replace.yml b/.butcher/types/PassportElementErrorFile/replace.yml deleted file mode 100644 index 105b390f..00000000 --- a/.butcher/types/PassportElementErrorFile/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - PassportElementError diff --git a/.butcher/types/PassportElementErrorFiles/replace.yml b/.butcher/types/PassportElementErrorFiles/replace.yml deleted file mode 100644 index 105b390f..00000000 --- a/.butcher/types/PassportElementErrorFiles/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - PassportElementError diff --git a/.butcher/types/PassportElementErrorFrontSide/replace.yml b/.butcher/types/PassportElementErrorFrontSide/replace.yml deleted file mode 100644 index 105b390f..00000000 --- a/.butcher/types/PassportElementErrorFrontSide/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - PassportElementError diff --git a/.butcher/types/PassportElementErrorReverseSide/replace.yml b/.butcher/types/PassportElementErrorReverseSide/replace.yml deleted file mode 100644 index 105b390f..00000000 --- a/.butcher/types/PassportElementErrorReverseSide/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - PassportElementError diff --git a/.butcher/types/PassportElementErrorSelfie/replace.yml b/.butcher/types/PassportElementErrorSelfie/replace.yml deleted file mode 100644 index 105b390f..00000000 --- a/.butcher/types/PassportElementErrorSelfie/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - PassportElementError diff --git a/.butcher/types/PassportElementErrorTranslationFile/replace.yml b/.butcher/types/PassportElementErrorTranslationFile/replace.yml deleted file mode 100644 index 105b390f..00000000 --- a/.butcher/types/PassportElementErrorTranslationFile/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - PassportElementError diff --git a/.butcher/types/PassportElementErrorTranslationFiles/replace.yml b/.butcher/types/PassportElementErrorTranslationFiles/replace.yml deleted file mode 100644 index 105b390f..00000000 --- a/.butcher/types/PassportElementErrorTranslationFiles/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - PassportElementError diff --git a/.butcher/types/PassportElementErrorUnspecified/replace.yml b/.butcher/types/PassportElementErrorUnspecified/replace.yml deleted file mode 100644 index 105b390f..00000000 --- a/.butcher/types/PassportElementErrorUnspecified/replace.yml +++ /dev/null @@ -1,2 +0,0 @@ -bases: - - PassportElementError diff --git a/.butcher/types/Poll/replace.yml b/.butcher/types/Poll/replace.yml index 6cf9fbff..fc4371b5 100644 --- a/.butcher/types/Poll/replace.yml +++ b/.butcher/types/Poll/replace.yml @@ -2,4 +2,4 @@ annotations: close_date: parsed_type: type: std - name: datetime.datetime + name: DateTime diff --git a/.butcher/types/PollAnswer/entity.json b/.butcher/types/PollAnswer/entity.json index 9081b30c..3b14d6dc 100644 --- a/.butcher/types/PollAnswer/entity.json +++ b/.butcher/types/PollAnswer/entity.json @@ -19,19 +19,27 @@ "name": "poll_id", "required": true }, + { + "type": "Chat", + "description": "The chat that changed the answer to the poll, if the voter is anonymous", + "html_description": "Optional. The chat that changed the answer to the poll, if the voter is anonymous", + "rst_description": "*Optional*. The chat that changed the answer to the poll, if the voter is anonymous\n", + "name": "voter_chat", + "required": false + }, { "type": "User", - "description": "The user, who changed the answer to the poll", - "html_description": "The user, who changed the answer to the poll", - "rst_description": "The user, who changed the answer to the poll\n", + "description": "The user that changed the answer to the poll, if the voter isn't anonymous", + "html_description": "Optional. The user that changed the answer to the poll, if the voter isn't anonymous", + "rst_description": "*Optional*. The user that changed the answer to the poll, if the voter isn't anonymous\n", "name": "user", - "required": true + "required": false }, { "type": "Array of Integer", - "description": "0-based identifiers of answer options, chosen by the user. May be empty if the user retracted their vote.", - "html_description": "0-based identifiers of answer options, chosen by the user. May be empty if the user retracted their vote.", - "rst_description": "0-based identifiers of answer options, chosen by the user. May be empty if the user retracted their vote.\n", + "description": "0-based identifiers of chosen answer options. May be empty if the vote was retracted.", + "html_description": "0-based identifiers of chosen answer options. May be empty if the vote was retracted.", + "rst_description": "0-based identifiers of chosen answer options. May be empty if the vote was retracted.\n", "name": "option_ids", "required": true } diff --git a/.butcher/types/PreCheckoutQuery/aliases.yml b/.butcher/types/PreCheckoutQuery/aliases.yml new file mode 100644 index 00000000..780f3bd1 --- /dev/null +++ b/.butcher/types/PreCheckoutQuery/aliases.yml @@ -0,0 +1,4 @@ +answer: + method: answerPreCheckoutQuery + fill: + pre_checkout_query_id: self.id diff --git a/.butcher/types/ShippingQuery/aliases.yml b/.butcher/types/ShippingQuery/aliases.yml new file mode 100644 index 00000000..7fb73655 --- /dev/null +++ b/.butcher/types/ShippingQuery/aliases.yml @@ -0,0 +1,4 @@ +answer: + method: answerShippingQuery + fill: + shipping_query_id: self.id diff --git a/.butcher/types/Story/entity.json b/.butcher/types/Story/entity.json new file mode 100644 index 00000000..77ab9bea --- /dev/null +++ b/.butcher/types/Story/entity.json @@ -0,0 +1,16 @@ +{ + "meta": {}, + "group": { + "title": "Available types", + "anchor": "available-types" + }, + "object": { + "anchor": "story", + "name": "Story", + "description": "This object represents a message about a forwarded story in the chat. Currently holds no information.", + "html_description": "

This object represents a message about a forwarded story in the chat. Currently holds no information.

", + "rst_description": "This object represents a message about a forwarded story in the chat. Currently holds no information.", + "annotations": [], + "category": "types" + } +} diff --git a/.butcher/types/Update/entity.json b/.butcher/types/Update/entity.json index 1ee46f08..9ccf33e5 100644 --- a/.butcher/types/Update/entity.json +++ b/.butcher/types/Update/entity.json @@ -117,9 +117,9 @@ }, { "type": "ChatMemberUpdated", - "description": "A chat member's status was updated in a chat. The bot must be an administrator in the chat and must explicitly specify 'chat_member' in the list of allowed_updates to receive these updates.", - "html_description": "Optional. A chat member's status was updated in a chat. The bot must be an administrator in the chat and must explicitly specify “chat_member” in the list of allowed_updates to receive these updates.", - "rst_description": "*Optional*. A chat member's status was updated in a chat. The bot must be an administrator in the chat and must explicitly specify 'chat_member' in the list of *allowed_updates* to receive these updates.\n", + "description": "A chat member's status was updated in a chat. The bot must be an administrator in the chat and must explicitly specify \"chat_member\" in the list of allowed_updates to receive these updates.", + "html_description": "Optional. A chat member's status was updated in a chat. The bot must be an administrator in the chat and must explicitly specify \"chat_member\" in the list of allowed_updates to receive these updates.", + "rst_description": "*Optional*. A chat member's status was updated in a chat. The bot must be an administrator in the chat and must explicitly specify :code:`\"chat_member\"` in the list of *allowed_updates* to receive these updates.\n", "name": "chat_member", "required": false }, diff --git a/.butcher/types/VideoChatScheduled/replace.yml b/.butcher/types/VideoChatScheduled/replace.yml index 48d98bf6..8aa22091 100644 --- a/.butcher/types/VideoChatScheduled/replace.yml +++ b/.butcher/types/VideoChatScheduled/replace.yml @@ -2,4 +2,4 @@ annotations: start_date: parsed_type: type: std - name: datetime.datetime + name: DateTime diff --git a/.butcher/types/WebAppInfo/entity.json b/.butcher/types/WebAppInfo/entity.json index a0ec3c45..aaeed289 100644 --- a/.butcher/types/WebAppInfo/entity.json +++ b/.butcher/types/WebAppInfo/entity.json @@ -14,8 +14,8 @@ { "type": "String", "description": "An HTTPS URL of a Web App to be opened with additional data as specified in Initializing Web Apps", - "html_description": "An HTTPS URL of a Web App to be opened with additional data as specified in Initializing Web Apps", - "rst_description": "An HTTPS URL of a Web App to be opened with additional data as specified in `Initializing Web Apps `_\n", + "html_description": "An HTTPS URL of a Web App to be opened with additional data as specified in Initializing Web Apps", + "rst_description": "An HTTPS URL of a Web App to be opened with additional data as specified in `Initializing Web Apps `_\n", "name": "url", "required": true } diff --git a/.butcher/types/WebhookInfo/replace.yml b/.butcher/types/WebhookInfo/replace.yml index 4b1a71f0..5a784309 100644 --- a/.butcher/types/WebhookInfo/replace.yml +++ b/.butcher/types/WebhookInfo/replace.yml @@ -2,5 +2,5 @@ annotations: last_error_date: &date parsed_type: type: std - name: datetime.datetime + name: DateTime last_synchronization_error_date: *date diff --git a/.butcher/types/WriteAccessAllowed/entity.json b/.butcher/types/WriteAccessAllowed/entity.json index 62d83fdd..d054736a 100644 --- a/.butcher/types/WriteAccessAllowed/entity.json +++ b/.butcher/types/WriteAccessAllowed/entity.json @@ -7,17 +7,33 @@ "object": { "anchor": "writeaccessallowed", "name": "WriteAccessAllowed", - "description": "This object represents a service message about a user allowing a bot to write messages after adding the bot to the attachment menu or launching a Web App from a link.", - "html_description": "

This object represents a service message about a user allowing a bot to write messages after adding the bot to the attachment menu or launching a Web App from a link.

", - "rst_description": "This object represents a service message about a user allowing a bot to write messages after adding the bot to the attachment menu or launching a Web App from a link.", + "description": "This object represents a service message about a user allowing a bot to write messages after adding it to the attachment menu, launching a Web App from a link, or accepting an explicit request from a Web App sent by the method requestWriteAccess.", + "html_description": "

This object represents a service message about a user allowing a bot to write messages after adding it to the attachment menu, launching a Web App from a link, or accepting an explicit request from a Web App sent by the method requestWriteAccess.

", + "rst_description": "This object represents a service message about a user allowing a bot to write messages after adding it to the attachment menu, launching a Web App from a link, or accepting an explicit request from a Web App sent by the method `requestWriteAccess `_.", "annotations": [ + { + "type": "Boolean", + "description": "True, if the access was granted after the user accepted an explicit request from a Web App sent by the method requestWriteAccess", + "html_description": "Optional. True, if the access was granted after the user accepted an explicit request from a Web App sent by the method requestWriteAccess", + "rst_description": "*Optional*. True, if the access was granted after the user accepted an explicit request from a Web App sent by the method `requestWriteAccess `_\n", + "name": "from_request", + "required": false + }, { "type": "String", - "description": "Name of the Web App which was launched from a link", - "html_description": "Optional. Name of the Web App which was launched from a link", - "rst_description": "*Optional*. Name of the Web App which was launched from a link\n", + "description": "Name of the Web App, if the access was granted when the Web App was launched from a link", + "html_description": "Optional. Name of the Web App, if the access was granted when the Web App was launched from a link", + "rst_description": "*Optional*. Name of the Web App, if the access was granted when the Web App was launched from a link\n", "name": "web_app_name", "required": false + }, + { + "type": "Boolean", + "description": "True, if the access was granted when the bot was added to the attachment or side menu", + "html_description": "Optional. True, if the access was granted when the bot was added to the attachment or side menu", + "rst_description": "*Optional*. True, if the access was granted when the bot was added to the attachment or side menu\n", + "name": "from_attachment_menu", + "required": false } ], "category": "types" diff --git a/.github/ISSUE_TEMPLATE/bug.yaml b/.github/ISSUE_TEMPLATE/bug.yaml new file mode 100644 index 00000000..89ec316c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yaml @@ -0,0 +1,100 @@ +name: Bug report +description: Report issues affecting the framework or the documentation. +labels: + - bug +body: + - type: checkboxes + attributes: + label: Checklist + options: + - label: I am sure the error is coming from aiogram code + required: true + - label: I have searched in the issue tracker for similar bug reports, including closed ones + required: true + + - type: markdown + attributes: + value: | + ## Context + + Please provide as much information as possible. This will help us to reproduce the issue and fix it. + + - type: input + attributes: + label: Operating system + placeholder: e.g. Ubuntu 20.04.2 LTS + validations: + required: true + + - type: input + attributes: + label: Python version + description: (`python --version` inside your virtualenv) + placeholder: e.g. 3.10.1 + validations: + required: true + + - type: input + attributes: + label: aiogram version + description: (`pip show aiogram` inside your virtualenv) + placeholder: e.g. 2.21 or 3.0b3 + validations: + required: true + + - type: textarea + attributes: + label: Expected behavior + description: Please describe the behavior you are expecting. + placeholder: E.g. the bot should send a message with the text "Hello, world!". + validations: + required: true + + - type: textarea + attributes: + label: Current behavior + description: Please describe the behavior you are currently experiencing. + placeholder: E.g. the bot doesn't send any message. + validations: + required: true + + - type: textarea + attributes: + label: Steps to reproduce + description: Please describe the steps you took to reproduce the behavior. + placeholder: | + 1. step 1 + 2. step 2 + 3. ... + 4. you get it... + validations: + required: true + + - type: textarea + attributes: + label: Code example + description: Provide a [minimal, reproducible](https://stackoverflow.com/help/minimal-reproducible-example) and properly formatted example (if applicable). + placeholder: | + from aiogram import Bot, Dispatcher + ... + render: python3 + + - type: textarea + attributes: + label: Logs + description: Provide the complete traceback (if applicable) or other kind of logs. + placeholder: | + Traceback (most recent call last): + File "main.py", line 1, in + ... + SomeException: ... + render: sh + + - type: textarea + attributes: + label: Additional information + description: Please provide any additional information that may help us to reproduce the issue. + placeholder: | + E.g. this behavior is reproducible only in group chats. + + You can also attach additional screenshots, logs, or other files. diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 6adfd76b..00000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve - ---- - ---- -name: Bug report -about: Create a report to help us improve - ---- - -## Context - -Please provide any relevant information about your setup. This is important in case the issue is not reproducible except for under certain conditions. - -* Operating System: -* Python Version: -* aiogram version: -* aiohttp version: -* uvloop version (if installed): - -## Expected Behavior - -Please describe the behavior you are expecting - -## Current Behavior - -What is the current behavior? - -## Failure Information (for bugs) - -Please help provide information about the failure if this is a bug. If it is not a bug, please remove the rest of this template. - -### Steps to Reproduce - -Please provide detailed steps for reproducing the issue. - -1. step 1 -2. step 2 -3. you get it... - -### Failure Logs - -Please include any relevant log snippets or files here. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..aee2a9d6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,11 @@ +blank_issues_enabled: true +contact_links: + - name: Discuss anything related to the framework + url: https://github.com/aiogram/aiogram/discussions + about: Ask a question about aiogram or share your code snippets and ideas. + - name: Join our Telegram channel + url: https://t.me/aiogram_live + about: Get the latest updates about the framework. + - name: Join our Telegram chat + url: https://t.me/aiogram + about: Get help, ask questions, and discuss the framework in real-time. diff --git a/.github/ISSUE_TEMPLATE/feature.yaml b/.github/ISSUE_TEMPLATE/feature.yaml new file mode 100644 index 00000000..257417f1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature.yaml @@ -0,0 +1,56 @@ +name: Feature request +description: Report features you would like to see or improve in the framework. +labels: + - enhancement +body: + - type: dropdown + attributes: + label: aiogram version + description: (`pip show aiogram` inside your virtualenv) + options: + - 3.x + - 2.x + - both + - n/a + validations: + required: true + + - type: textarea + attributes: + label: Problem + description: Is your feature request related to a specific problem? If not, please describe the general idea of your request. + placeholder: e.g. I want to send a photo to a user by url. + validations: + required: true + + - type: textarea + attributes: + label: Possible solution + description: Describe the solution you would like to see in the framework. + placeholder: e.g. Add a method to send a photo to a user by url. + validations: + required: true + + - type: textarea + attributes: + label: Alternatives + description: What other solutions do you have in mind? + placeholder: e.g. I'm sending a text message with photo url. + + - type: textarea + attributes: + label: Code example + description: A small code example that demonstrates the behavior you would like to see. + placeholder: | + await bot.send_photo(user_id, photo_url) + ... + render: python3 + + - type: textarea + attributes: + label: Additional information + description: Any additional information you would like to provide. + placeholder: | + E.g. this method should also cache images to speed up further sending. + + You can also attach additional pictures or other files. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 066b2d92..00000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index ade26bd1..9a4d9351 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -30,6 +30,5 @@ Please describe the tests that you ran to verify your changes. Provide instructi - [ ] My code follows the style guidelines of this project - [ ] I have performed a self-review of my own code - [ ] I have made corresponding changes to the documentation -- [ ] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes diff --git a/.github/workflows/pull_request_changelog.yml b/.github/workflows/pull_request_changelog.yml index f803153e..9115e29a 100644 --- a/.github/workflows/pull_request_changelog.yml +++ b/.github/workflows/pull_request_changelog.yml @@ -55,9 +55,13 @@ jobs: You need to add a brief description of the changes to the `CHANGES` directory. - For example, you can run `towncrier create .` to create a file in the change directory and then write a description on that file. + Changes file should be named like `..rst`, + example `1234.bugfix.rst` where `1234` is the PR or issue number and `bugfix` is the category. - Read more at [Towncrier docs](https://towncrier.readthedocs.io/en/latest/quickstart.html#creating-news-fragments) + The content of the file should be a brief description of the changes in + the PR in the format of a description of what has been done. + + Possible categories are: `feature`, `bugfix`, `doc`, `removal` and `misc`. - name: Changelog found if: "success()" diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index 1cfe82b1..6991e206 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -12,14 +12,21 @@ jobs: steps: - uses: actions/checkout@master - - name: Set up Python 3.10 + - name: Set up Python 3.11 uses: actions/setup-python@v4 with: - python-version: "3.10" + python-version: "3.11" - name: Install build dependencies run: python -m pip install --upgrade build + - name: Resolve version + id: package-version + run: echo "value=$(echo ${{ github.ref }} | sed -e 's/refs\/tags\/v//')" >> $GITHUB_OUTPUT + + # - name: Bump version + # run: hatch version ${{ steps.package-version.outputs.value }} + - name: Build source distribution run: python -m build . @@ -40,8 +47,12 @@ jobs: publish: name: Publish needs: build - if: "success() && startsWith(github.ref, 'refs/tags/')" runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/project/aiogram/${{ steps.package-version.outputs.value }}/ + permissions: + id-token: write steps: - name: Download artifacts uses: actions/download-artifact@v1 @@ -49,17 +60,5 @@ jobs: name: dist path: dist - # - name: Publish a Python distribution to Test PyPI - # uses: pypa/gh-action-pypi-publish@master - ## if: github.event.action != 'published' - # with: - # user: __token__ - # password: ${{ secrets.PYPI_TEST_TOKEN }} - # repository_url: https://test.pypi.org/legacy/ - - name: Publish a Python distribution to PyPI - uses: pypa/gh-action-pypi-publish@master - # if: github.event.action == 'published' - with: - user: __token__ - password: ${{ secrets.PYPI_TOKEN }} + uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index e5e85147..d238a558 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -74,7 +74,7 @@ jobs: - name: Lint code if: "env.IS_PYPY == 'false'" run: | - ruff --format=github aiogram examples + ruff --output-format=github aiogram examples mypy aiogram black --check --diff aiogram tests diff --git a/.readthedocs.yml b/.readthedocs.yml index 41b7a452..b61b3f17 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -1,13 +1,12 @@ version: 2 -python: - version: "3.8" - install: - - method: pip - path: . - extra_requirements: - - docs - - redis +build: + os: ubuntu-22.04 + tools: + python: "3.11" + jobs: + post_install: + - pip install .[docs,redis] sphinx: configuration: docs/conf.py diff --git a/CHANGES.rst b/CHANGES.rst index afbb2d4a..359b8f26 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -16,6 +16,335 @@ Changelog .. towncrier release notes start +3.1.1 (2023-09-25) +=================== + +Bugfixes +-------- + +- Fixed `pydantic` version <2.4, since 2.4 has breaking changes. + `#1322 `_ + + +3.1.0 (2023-09-22) +=================== + +Features +-------- + +- Added support for custom encoders/decoders for payload (and also for deep-linking). + `#1262 `_ +- Added :class:`aiogram.utils.input_media.MediaGroupBuilder` for media group construction. + `#1293 `_ +- Added full support of `Bot API 6.9 `_ + `#1319 `_ + + +Bugfixes +-------- + +- Added actual param hints for `InlineKeyboardBuilder` and `ReplyKeyboardBuilder`. + `#1303 `_ +- Fixed priority of events isolation, now user state will be loaded only after lock is acquired + `#1317 `_ + + +3.0.0 (2023-09-01) +=================== + +Bugfixes +-------- + +- Replaced :code:`datetime.datetime` with `DateTime` type wrapper across types to make dumped JSONs object + more compatible with data that is sent by Telegram. + `#1277 `_ +- Fixed magic :code:`.as_(...)` operation for values that can be interpreted as `False` (e.g. `0`). + `#1281 `_ +- Italic markdown from utils now uses correct decorators + `#1282 `_ +- Fixed method :code:`Message.send_copy` for stickers. + `#1284 `_ +- Fixed :code:`Message.send_copy` method, which was not working properly with stories, so not you can copy stories too (forwards messages). + `#1286 `_ +- Fixed error overlapping when validation error is caused by remove_unset root validator in base types and methods. + `#1290 `_ + + +3.0.0rc2 (2023-08-18) +====================== + +Bugfixes +-------- + +- Fixed missing message content types (:code:`ContentType.USER_SHARED`, :code:`ContentType.CHAT_SHARED`) + `#1252 `_ +- Fixed nested hashtag, cashtag and email message entities not being parsed correctly when these entities are inside another entity. + `#1259 `_ +- Moved global filters check placement into router to add chance to pass context from global filters + into handlers in the same way as it possible in other places + `#1266 `_ + + +Improved Documentation +---------------------- + +- Added error handling example `examples/error_handling.py` + `#1099 `_ +- Added a few words about skipping pending updates + `#1251 `_ +- Added a section on Dependency Injection technology + `#1253 `_ +- This update includes the addition of a multi-file bot example to the repository. + `#1254 `_ +- Refactored examples code to use aiogram enumerations and enhanced chat messages with markdown + beautification's for a more user-friendly display. + `#1256 `_ +- Supplemented "Finite State Machine" section in Migration FAQ + `#1264 `_ +- Removed extra param in docstring of TelegramEventObserver's filter method + and fixed typo in I18n documentation. + `#1268 `_ + + +Misc +---- + +- Enhanced the warning message in dispatcher to include a JSON dump of the update when update type is not known. + `#1269 `_ +- Added support for `Bot API 6.8 `_ + `#1275 `_ + + +3.0.0rc1 (2023-08-06) +====================== + +Features +-------- + +- Added Currency enum. + You can use it like this: + + .. code-block:: python + + from aiogram.enums import Currency + + await bot.send_invoice( + ..., + currency=Currency.USD, + ... + ) + `#1194 `_ +- Updated keyboard builders with new methods for integrating buttons and keyboard creation more seamlessly. + Added functionality to create buttons from existing markup and attach another builder. + This improvement aims to make the keyboard building process more user-friendly and flexible. + `#1236 `_ +- Added support for message_thread_id in ChatActionSender + `#1249 `_ + + +Bugfixes +-------- + +- Fixed polling startup when "bot" key is passed manually into dispatcher workflow data + `#1242 `_ +- Added codegen configuration for lost shortcuts: + + - ShippingQuery.answer + - PreCheckoutQuery.answer + - Message.delete_reply_markup + `#1244 `_ + + +Improved Documentation +---------------------- + +- Added documentation for webhook and polling modes. + `#1241 `_ + + +Misc +---- + +- Reworked InputFile reading, removed :code:`__aiter__` method, added `bot: Bot` argument to + the :code:`.read(...)` method, so, from now URLInputFile can be used without specifying + bot instance. + `#1238 `_ +- Code-generated :code:`__init__` typehints in types and methods to make IDE happy without additional pydantic plugin + `#1245 `_ + + +3.0.0b9 (2023-07-30) +===================== + +Features +-------- + +- Added new shortcuts for :class:`aiogram.types.chat_member_updated.ChatMemberUpdated` + to send message to chat that member joined/left. + `#1234 `_ +- Added new shortcuts for :class:`aiogram.types.chat_join_request.ChatJoinRequest` + to make easier access to sending messages to users who wants to join to chat. + `#1235 `_ + + +Bugfixes +-------- + +- Fixed bot assignment in the :code:`Message.send_copy` shortcut + `#1232 `_ +- Added model validation to remove UNSET before field validation. + This change was necessary to correctly handle parse_mode where 'UNSET' is used as a sentinel value. + Without the removal of 'UNSET', it would create issues when passed to model initialization from Bot.method_name. + 'UNSET' was also added to typing. + `#1233 `_ +- Updated pydantic to 2.1 with few bugfixes + + +Improved Documentation +---------------------- + +- Improved docs, added basic migration guide (will be expanded later) + `#1143 `_ + + +Deprecations and Removals +------------------------- + +- Removed the use of the context instance (Bot.get_current) from all placements that were used previously. + This is to avoid the use of the context instance in the wrong place. + `#1230 `_ + + +3.0.0b8 (2023-07-17) +===================== + +Features +-------- + +- Added possibility to use custom events in routers (If router does not support custom event it does not break and passes it to included routers). + `#1147 `_ +- Added support for FSM in Forum topics. + + The strategy can be changed in dispatcher: + + .. code-block:: python + + from aiogram.fsm.strategy import FSMStrategy + ... + dispatcher = Dispatcher( + fsm_strategy=FSMStrategy.USER_IN_TOPIC, + storage=..., # Any persistent storage + ) + + .. note:: + + If you have implemented you own storages you should extend record key generation + with new one attribute - :code:`thread_id` + `#1161 `_ +- Improved CallbackData serialization. + + - Minimized UUID (hex without dashes) + - Replaced bool values with int (true=1, false=0) + `#1163 `_ +- Added a tool to make text formatting flexible and easy. + More details on the :ref:`corresponding documentation page ` + `#1172 `_ +- Added :code:`X-Telegram-Bot-Api-Secret-Token` header check + `#1173 `_ +- Made :code:`allowed_updates` list to revolve automatically in start_polling method if not set explicitly. + `#1178 `_ +- Added possibility to pass custom headers to :class:`URLInputFile` object + `#1191 `_ + + +Bugfixes +-------- + +- Change type of result in InlineQueryResult enum for :code:`InlineQueryResultCachedMpeg4Gif` + and :code:`InlineQueryResultMpeg4Gif` to more correct according to documentation. + + Change regexp for entities parsing to more correct (:code:`InlineQueryResultType.yml`). + `#1146 `_ +- Fixed signature of startup/shutdown events to include the :code:`**dispatcher.workflow_data` as the handler arguments. + `#1155 `_ +- Added missing :code:`FORUM_TOPIC_EDITED` value to content_type property + `#1160 `_ +- Fixed compatibility with Python 3.8-3.9 (from previous release) + `#1162 `_ +- Fixed the markdown spoiler parser. + `#1176 `_ +- Fixed workflow data propagation + `#1196 `_ +- Fixed the serialization error associated with nested subtypes + like InputMedia, ChatMember, etc. + + The previously generated code resulted in an invalid schema under pydantic v2, + which has stricter type parsing. + Hence, subtypes without the specification of all subtype unions were generating + an empty object. This has been rectified now. + `#1213 `_ + + +Improved Documentation +---------------------- + +- Changed small grammar typos for :code:`upload_file` + `#1133 `_ + + +Deprecations and Removals +------------------------- + +- Removed text filter in due to is planned to remove this filter few versions ago. + + Use :code:`F.text` instead + `#1170 `_ + + +Misc +---- + +- Added full support of `Bot API 6.6 `_ + + .. danger:: + + Note that this issue has breaking changes described in in the Bot API changelog, + this changes is not breaking in the API but breaking inside aiogram because + Beta stage is not finished. + `#1139 `_ +- Added full support of `Bot API 6.7 `_ + + .. warning:: + + Note that arguments *switch_pm_parameter* and *switch_pm_text* was deprecated + and should be changed to *button* argument as described in API docs. + `#1168 `_ +- Updated `Pydantic to V2 `_ + + .. warning:: + + Be careful, not all libraries is already updated to using V2 + `#1202 `_ +- Added global defaults :code:`disable_web_page_preview` and :code:`protect_content` in addition to :code:`parse_mode` to the Bot instance, + reworked internal request builder mechanism. + `#1142 `_ +- Removed bot parameters from storages + `#1144 `_ + +- Replaced ContextVar's with a new feature called `Validation Context `_ + in Pydantic to improve the clarity, usability, and versatility of handling the Bot instance within method shortcuts. + + .. danger:: + + **Breaking**: The 'bot' argument now is required in `URLInputFile` + `#1210 `_ +- Updated magic-filter with new features + + - Added hint for :code:`len(F)` error + - Added not in operation + `#1221 `_ + + 3.0.0b7 (2023-02-18) ===================== diff --git a/CHANGES/1133.doc.rst b/CHANGES/1133.doc.rst deleted file mode 100644 index a5ab681d..00000000 --- a/CHANGES/1133.doc.rst +++ /dev/null @@ -1 +0,0 @@ -Changed small grammar typos for `upload_file` diff --git a/CHANGES/1139.misc.rst b/CHANGES/1139.misc.rst deleted file mode 100644 index 432607e0..00000000 --- a/CHANGES/1139.misc.rst +++ /dev/null @@ -1,7 +0,0 @@ -Added full support of `Bot API 6.6 `_ - -.. danger:: - - Note that this issue has breaking changes described in in the Bot API changelog, - this changes is not breaking in the API but breaking inside aiogram because - Beta stage is not finished. diff --git a/CHANGES/1142.misc.rst b/CHANGES/1142.misc.rst deleted file mode 100644 index c17fb588..00000000 --- a/CHANGES/1142.misc.rst +++ /dev/null @@ -1,2 +0,0 @@ -Added global defaults `disable_web_page_preview` and `protect_content` in addition to `parse_mode` to the Bot instance, -reworked internal request builder mechanism. diff --git a/CHANGES/1144.misc.rst b/CHANGES/1144.misc.rst deleted file mode 100644 index 8b3109f0..00000000 --- a/CHANGES/1144.misc.rst +++ /dev/null @@ -1 +0,0 @@ -Removed bot parameters from storages diff --git a/CHANGES/1146.bugfix.rst b/CHANGES/1146.bugfix.rst deleted file mode 100644 index fbe88e4c..00000000 --- a/CHANGES/1146.bugfix.rst +++ /dev/null @@ -1,4 +0,0 @@ -Change type of result in InlineQueryResult enum for `InlineQueryResultCachedMpeg4Gif` -and `InlineQueryResultMpeg4Gif` to more correct according to documentation. - -Change regexp for entities parsing to more correct (`InlineQueryResultType.yml`). diff --git a/CHANGES/1147.feature b/CHANGES/1147.feature deleted file mode 100644 index fa34e703..00000000 --- a/CHANGES/1147.feature +++ /dev/null @@ -1 +0,0 @@ -If router does not support custom event it does not break and passes it to included routers \ No newline at end of file diff --git a/CHANGES/1155.bugfix.rst b/CHANGES/1155.bugfix.rst deleted file mode 100644 index 753ffc96..00000000 --- a/CHANGES/1155.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed signature of startup/shutdown events to include the **dispatcher.workflow_data as the handler arguments. diff --git a/CHANGES/1160.bugfix b/CHANGES/1160.bugfix deleted file mode 100644 index 68e82835..00000000 --- a/CHANGES/1160.bugfix +++ /dev/null @@ -1 +0,0 @@ -Added missing FORUM_TOPIC_EDITED value to content_type property diff --git a/CHANGES/1161.feature.rst b/CHANGES/1161.feature.rst deleted file mode 100644 index 819c697c..00000000 --- a/CHANGES/1161.feature.rst +++ /dev/null @@ -1,17 +0,0 @@ -Added support for FSM in Forum topics. - -The strategy can be changed in dispatcher: - -.. code-block:: python - - from aiogram.fsm.strategy import FSMStrategy - ... - dispatcher = Dispatcher( - fsm_strategy=FSMStrategy.USER_IN_THREAD, - storage=..., # Any persistent storage - ) - -.. note:: - - If you have implemented you own storages you should extend record key generation - with new one attribute - `thread_id` diff --git a/CHANGES/1162.bugfix.rst b/CHANGES/1162.bugfix.rst deleted file mode 100644 index 16d5be16..00000000 --- a/CHANGES/1162.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed compatibility with Python 3.8-3.9 diff --git a/CHANGES/1163.feature.rst b/CHANGES/1163.feature.rst deleted file mode 100644 index 06e97c3d..00000000 --- a/CHANGES/1163.feature.rst +++ /dev/null @@ -1,4 +0,0 @@ -Improved CallbackData serialization. - -- Minimized UUID (hex without dashes) -- Replaced bool values with int (true=1, false=0) diff --git a/CHANGES/1168.misc.rst b/CHANGES/1168.misc.rst deleted file mode 100644 index 0bce876f..00000000 --- a/CHANGES/1168.misc.rst +++ /dev/null @@ -1,6 +0,0 @@ -Added full support of `Bot API 6.7 `_ - -.. warning:: - - Note that arguments *switch_pm_parameter* and *switch_pm_text* was deprecated - and should be changed to *button* argument as described in API docs. diff --git a/CHANGES/1170.removal.rst b/CHANGES/1170.removal.rst deleted file mode 100644 index c2a06444..00000000 --- a/CHANGES/1170.removal.rst +++ /dev/null @@ -1,3 +0,0 @@ -Removed text filter in due to is planned to remove this filter few versions ago. - -Use :code:`F.text` instead diff --git a/CHANGES/1176.bugfix.rst b/CHANGES/1176.bugfix.rst deleted file mode 100644 index 57f67202..00000000 --- a/CHANGES/1176.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed the markdown spoiler parser. diff --git a/CHANGES/1302.doc b/CHANGES/1302.doc new file mode 100644 index 00000000..80cc5492 --- /dev/null +++ b/CHANGES/1302.doc @@ -0,0 +1 @@ +Corrected grammatical errors, improved sentence structures, translation for migration 2.x-3.x \ No newline at end of file diff --git a/CHANGES/1320.misc.rst b/CHANGES/1320.misc.rst new file mode 100644 index 00000000..f7e079ce --- /dev/null +++ b/CHANGES/1320.misc.rst @@ -0,0 +1 @@ +Fixed ResourceWarning in the tests, reworked :code:`RedisEventsIsolation` fixture to use Redis connection from :code:`RedisStorage` diff --git a/CHANGES/1327.misc.rst b/CHANGES/1327.misc.rst new file mode 100644 index 00000000..fd02654c --- /dev/null +++ b/CHANGES/1327.misc.rst @@ -0,0 +1,6 @@ +Updated dependencies, bumped minimum required version: + +- :code:`magic-filter` - fixed `.resolve` operation +- :code:`pydantic` - fixed compatibility (broken in 2.4) +- :code:`aiodns` - added new dependency to the :code:`fast` extras (:code:`pip install aiogram[fast]`) +- *others...* diff --git a/CHANGES/1331.misc b/CHANGES/1331.misc new file mode 100644 index 00000000..375f975c --- /dev/null +++ b/CHANGES/1331.misc @@ -0,0 +1 @@ +Prevent update handling task pointers from being garbage collected, backport from 2.x \ No newline at end of file diff --git a/CHANGES/1332.bugfix.rst b/CHANGES/1332.bugfix.rst new file mode 100644 index 00000000..004cfd1d --- /dev/null +++ b/CHANGES/1332.bugfix.rst @@ -0,0 +1 @@ + Fixed ``parse_mode`` in ``send_copy`` helper. Disable by default. diff --git a/CHANGES/1340.doc.rst b/CHANGES/1340.doc.rst new file mode 100644 index 00000000..83bd6723 --- /dev/null +++ b/CHANGES/1340.doc.rst @@ -0,0 +1 @@ +Minor typo correction, specifically in module naming + some grammar. diff --git a/CHANGES/1343.feature.rst b/CHANGES/1343.feature.rst new file mode 100644 index 00000000..6ae25cd3 --- /dev/null +++ b/CHANGES/1343.feature.rst @@ -0,0 +1 @@ +The new FSM strategy CHAT_TOPIC, which sets the state for the entire topic in the chat, also works in private messages and regular groups without topics. diff --git a/CHANGES/1347.misc.rst b/CHANGES/1347.misc.rst new file mode 100644 index 00000000..2da2e568 --- /dev/null +++ b/CHANGES/1347.misc.rst @@ -0,0 +1 @@ +Updated :code:`typing-extensions` package version range in dependencies to fix compatibility with :code:`FastAPI` diff --git a/CHANGES/1351.doc.rst b/CHANGES/1351.doc.rst new file mode 100644 index 00000000..5108d25e --- /dev/null +++ b/CHANGES/1351.doc.rst @@ -0,0 +1,2 @@ +Added `CITATION.cff` file for automatic academic citation generation. +Now you can copy citation from the GitHub page and paste it into your paper. diff --git a/CHANGES/1353.doc.rst b/CHANGES/1353.doc.rst new file mode 100644 index 00000000..15f6d28e --- /dev/null +++ b/CHANGES/1353.doc.rst @@ -0,0 +1 @@ +Minor typo correction in middleware docs. diff --git a/CHANGES/1357.misc.rst b/CHANGES/1357.misc.rst new file mode 100644 index 00000000..96822c1f --- /dev/null +++ b/CHANGES/1357.misc.rst @@ -0,0 +1 @@ +Speeded up CallableMixin processing by caching references to nested objects and simplifying kwargs assembly. diff --git a/CHANGES/1360.bugfix.rst b/CHANGES/1360.bugfix.rst new file mode 100644 index 00000000..e02d0ea4 --- /dev/null +++ b/CHANGES/1360.bugfix.rst @@ -0,0 +1 @@ +Added current handler to filters, so that flags can be retrieved from it. diff --git a/CHANGES/1361.misc b/CHANGES/1361.misc new file mode 100644 index 00000000..6e6413d8 --- /dev/null +++ b/CHANGES/1361.misc @@ -0,0 +1 @@ +Added pydantic v2.5 support. diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 00000000..6eb723ae --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,23 @@ +# This CITATION.cff file was generated with cffinit. +# Visit https://bit.ly/cffinit to generate yours today! + +cff-version: 1.2.0 +title: aiogram +message: >- + If you use this software, please cite it using the + metadata from this file. +type: software +authors: + - given-names: Oleksandr + family-names: Onufriichuk + email: im@aiogram.dev +repository-code: 'https://github.com/aiogram/aiogram' +url: 'https://aiogram.dev' +abstract: >- + aiogram is a modern and fully asynchronous framework for + Telegram Bot API written in Python using asyncio +keywords: + - aiogram + - telegram + - bot +license: MIT diff --git a/LICENSE b/LICENSE index f9721b14..caa060cc 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2017-2022 Alex Root Junior +Copyright (c) 2017 - present Alex Root Junior Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software diff --git a/Makefile b/Makefile index 66dd4eba..0464bd45 100644 --- a/Makefile +++ b/Makefile @@ -67,19 +67,18 @@ test-coverage-view: # Docs # ================================================================================================= -locales := en uk_UA +locales := uk_UA locale_targets := $(addprefix docs-serve-, $(locales)) locales_pot := _build/gettext docs_dir := docs docs-gettext: - cd $(docs_dir) && make gettext - cd $(docs_dir) && sphinx-intl update -p $(locales_pot) $(addprefix -l , $(locales)) + hatch run docs:bash -c 'cd $(docs_dir) && make gettext' + hatch run docs:bash -c 'cd $(docs_dir) && sphinx-intl update -p $(locales_pot) $(addprefix -l , $(locales))' .PHONY: docs-gettext docs-serve: - #rm -rf docs/_build - sphinx-autobuild --watch aiogram/ --watch CHANGELOG.rst --watch README.rst docs/ docs/_build/ $(OPTS) + hatch run docs:sphinx-autobuild --watch aiogram/ --watch CHANGELOG.rst --watch README.rst docs/ docs/_build/ $(OPTS) .PHONY: docs-serve $(locale_targets): docs-serve-%: @@ -120,3 +119,16 @@ release: git add . git commit -m "Release $(shell poetry version -s)" git tag v$(shell hatch version -s) + + +butcher_version := 0.1.23 + +butcher-install: + pip install -U git+ssh://git@github.com/aiogram/butcher.git@v$(butcher_version) +.PHONY: butcher-install + +butcher: + butcher parse + butcher refresh + butcher apply all +.PHONY: butcher diff --git a/README.rst b/README.rst index 3c2297a8..1a2f360a 100644 --- a/README.rst +++ b/README.rst @@ -1,9 +1,6 @@ -#################### -aiogram |beta badge| -#################### - -.. danger:: - This version is still in development! +####### +aiogram +####### .. image:: https://img.shields.io/pypi/l/aiogram.svg?style=flat-square :target: https://opensource.org/licenses/MIT @@ -49,25 +46,17 @@ Documentation: - 🇺🇦 `Ukrainian `_ -.. danger:: - - **Breaking News:** - - *aiogram* 3.0 has breaking changes. - - It breaks backward compatibility by introducing new breaking changes! - Features ======== - Asynchronous (`asyncio docs `_, :pep:`492`) - Has type hints (:pep:`484`) and can be used with `mypy `_ - Supports `PyPy `_ -- Supports `Telegram Bot API 6.6 `_ and gets fast updates to the latest versions of the Bot API +- Supports `Telegram Bot API 6.9 `_ 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 -- Uses powerful `magic filters ` +- Uses powerful `magic filters `_ - Middlewares (incoming updates and API calls) - Provides `Replies into Webhook `_ - Integrated I18n/L10n support with GNU Gettext (or Fluent) @@ -89,7 +78,3 @@ Features - 🇮🇷 `@aiogram_fa `_ - 🇮🇹 `@aiogram_it `_ - 🇧🇷 `@aiogram_br `_ - - -.. |beta badge| image:: https://img.shields.io/badge/-beta-orange - :alt: Beta badge diff --git a/aiogram/__init__.py b/aiogram/__init__.py index 4ed355fc..31d1b16b 100644 --- a/aiogram/__init__.py +++ b/aiogram/__init__.py @@ -3,6 +3,7 @@ from contextlib import suppress from aiogram.dispatcher.flags import FlagGenerator from . import enums, methods, types +from .__meta__ import __api_version__, __version__ from .client import session from .client.bot import Bot from .dispatcher.dispatcher import Dispatcher @@ -15,7 +16,7 @@ from .utils.text_decorations import markdown_decoration as md with suppress(ImportError): import uvloop as _uvloop - _uvloop.install() + _uvloop.install() # type: ignore[attr-defined,unused-ignore] F = MagicFilter() flags = FlagGenerator() @@ -36,6 +37,3 @@ __all__ = ( "md", "flags", ) - -__version__ = "3.0.0b8" -__api_version__ = "6.6" diff --git a/aiogram/__meta__.py b/aiogram/__meta__.py new file mode 100644 index 00000000..d20e16db --- /dev/null +++ b/aiogram/__meta__.py @@ -0,0 +1,2 @@ +__version__ = "3.2.0" +__api_version__ = "6.9" diff --git a/aiogram/client/bot.py b/aiogram/client/bot.py index a5258eaa..bcaeff35 100644 --- a/aiogram/client/bot.py +++ b/aiogram/client/bot.py @@ -134,13 +134,20 @@ from ..methods import ( UnhideGeneralForumTopic, UnpinAllChatMessages, UnpinAllForumTopicMessages, + UnpinAllGeneralForumTopicMessages, UnpinChatMessage, UploadStickerFile, ) from ..types import ( UNSET_PARSE_MODE, BotCommand, - BotCommandScope, + BotCommandScopeAllChatAdministrators, + BotCommandScopeAllGroupChats, + BotCommandScopeAllPrivateChats, + BotCommandScopeChat, + BotCommandScopeChatAdministrators, + BotCommandScopeChatMember, + BotCommandScopeDefault, BotDescription, BotName, BotShortDescription, @@ -160,10 +167,29 @@ from ..types import ( ForumTopic, GameHighScore, InlineKeyboardMarkup, - InlineQueryResult, + InlineQueryResultArticle, + InlineQueryResultAudio, + InlineQueryResultCachedAudio, + InlineQueryResultCachedDocument, + InlineQueryResultCachedGif, + InlineQueryResultCachedMpeg4Gif, + InlineQueryResultCachedPhoto, + InlineQueryResultCachedSticker, + InlineQueryResultCachedVideo, + InlineQueryResultCachedVoice, + InlineQueryResultContact, + InlineQueryResultDocument, + InlineQueryResultGame, + InlineQueryResultGif, + InlineQueryResultLocation, + InlineQueryResultMpeg4Gif, + InlineQueryResultPhoto, InlineQueryResultsButton, + InlineQueryResultVenue, + InlineQueryResultVideo, + InlineQueryResultVoice, InputFile, - InputMedia, + InputMediaAnimation, InputMediaAudio, InputMediaDocument, InputMediaPhoto, @@ -177,7 +203,15 @@ from ..types import ( Message, MessageEntity, MessageId, - PassportElementError, + PassportElementErrorDataField, + PassportElementErrorFile, + PassportElementErrorFiles, + PassportElementErrorFrontSide, + PassportElementErrorReverseSide, + PassportElementErrorSelfie, + PassportElementErrorTranslationFile, + PassportElementErrorTranslationFiles, + PassportElementErrorUnspecified, Poll, ReplyKeyboardMarkup, ReplyKeyboardRemove, @@ -197,7 +231,7 @@ from .session.base import BaseSession T = TypeVar("T") -class Bot(ContextInstanceMixin["Bot"]): +class Bot: def __init__( self, token: str, @@ -251,16 +285,14 @@ class Bot(ContextInstanceMixin["Bot"]): """ Generate bot context - :param auto_close: + :param auto_close: close session on exit :return: """ - token = self.set_current(self) try: yield self finally: if auto_close: await self.session.close() - self.reset_current(token) async def me(self) -> User: """ @@ -481,7 +513,30 @@ class Bot(ContextInstanceMixin["Bot"]): async def answer_inline_query( self, inline_query_id: str, - results: List[InlineQueryResult], + results: List[ + Union[ + InlineQueryResultCachedAudio, + InlineQueryResultCachedDocument, + InlineQueryResultCachedGif, + InlineQueryResultCachedMpeg4Gif, + InlineQueryResultCachedPhoto, + InlineQueryResultCachedSticker, + InlineQueryResultCachedVideo, + InlineQueryResultCachedVoice, + InlineQueryResultArticle, + InlineQueryResultAudio, + InlineQueryResultContact, + InlineQueryResultGame, + InlineQueryResultDocument, + InlineQueryResultGif, + InlineQueryResultLocation, + InlineQueryResultMpeg4Gif, + InlineQueryResultPhoto, + InlineQueryResultVenue, + InlineQueryResultVideo, + InlineQueryResultVoice, + ] + ], cache_time: Optional[int] = None, is_personal: Optional[bool] = None, next_offset: Optional[str] = None, @@ -579,7 +634,28 @@ class Bot(ContextInstanceMixin["Bot"]): async def answer_web_app_query( self, web_app_query_id: str, - result: InlineQueryResult, + result: Union[ + InlineQueryResultCachedAudio, + InlineQueryResultCachedDocument, + InlineQueryResultCachedGif, + InlineQueryResultCachedMpeg4Gif, + InlineQueryResultCachedPhoto, + InlineQueryResultCachedSticker, + InlineQueryResultCachedVideo, + InlineQueryResultCachedVoice, + InlineQueryResultArticle, + InlineQueryResultAudio, + InlineQueryResultContact, + InlineQueryResultGame, + InlineQueryResultDocument, + InlineQueryResultGif, + InlineQueryResultLocation, + InlineQueryResultMpeg4Gif, + InlineQueryResultPhoto, + InlineQueryResultVenue, + InlineQueryResultVideo, + InlineQueryResultVoice, + ], request_timeout: Optional[int] = None, ) -> SentWebAppMessage: """ @@ -637,7 +713,7 @@ class Bot(ContextInstanceMixin["Bot"]): :param chat_id: Unique identifier for the target group or username of the target supergroup or channel (in the format :code:`@channelusername`) :param user_id: Unique identifier of the target user - :param until_date: Date when the user will be unbanned, unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only. + :param until_date: Date when the user will be unbanned; Unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only. :param revoke_messages: Pass :code:`True` to delete all messages from the chat for the user that is being removed. If :code:`False`, the user will be able to see messages in the group that were sent before the user was removed. Always :code:`True` for supergroups and channels. :param request_timeout: Request timeout :return: Returns :code:`True` on success. @@ -1073,7 +1149,17 @@ class Bot(ContextInstanceMixin["Bot"]): async def delete_my_commands( self, - scope: Optional[BotCommandScope] = None, + scope: Optional[ + Union[ + BotCommandScopeDefault, + BotCommandScopeAllPrivateChats, + BotCommandScopeAllGroupChats, + BotCommandScopeAllChatAdministrators, + BotCommandScopeChat, + BotCommandScopeChatAdministrators, + BotCommandScopeChatMember, + ] + ] = None, language_code: Optional[str] = None, request_timeout: Optional[int] = None, ) -> bool: @@ -1282,7 +1368,13 @@ class Bot(ContextInstanceMixin["Bot"]): async def edit_message_media( self, - media: InputMedia, + media: Union[ + InputMediaAnimation, + InputMediaDocument, + InputMediaAudio, + InputMediaPhoto, + InputMediaVideo, + ], chat_id: Optional[Union[int, str]] = None, message_id: Optional[int] = None, inline_message_id: Optional[str] = None, @@ -1664,7 +1756,17 @@ class Bot(ContextInstanceMixin["Bot"]): async def get_my_commands( self, - scope: Optional[BotCommandScope] = None, + scope: Optional[ + Union[ + BotCommandScopeDefault, + BotCommandScopeAllPrivateChats, + BotCommandScopeAllGroupChats, + BotCommandScopeAllChatAdministrators, + BotCommandScopeChat, + BotCommandScopeChatAdministrators, + BotCommandScopeChatMember, + ] + ] = None, language_code: Optional[str] = None, request_timeout: Optional[int] = None, ) -> List[BotCommand]: @@ -1747,7 +1849,7 @@ class Bot(ContextInstanceMixin["Bot"]): :param offset: Identifier of the first update to be returned. Must be greater by one than the highest among the identifiers of previously received updates. By default, updates starting with the earliest unconfirmed update are returned. An update is considered confirmed as soon as :class:`aiogram.methods.get_updates.GetUpdates` is called with an *offset* higher than its *update_id*. The negative offset can be specified to retrieve updates starting from *-offset* update from the end of the updates queue. All previous updates will be forgotten. :param limit: Limits the number of updates to be retrieved. Values between 1-100 are accepted. Defaults to 100. :param timeout: Timeout in seconds for long polling. Defaults to 0, i.e. usual short polling. Should be positive, short polling should be used for testing purposes only. - :param allowed_updates: A JSON-serialized list of the update types you want your bot to receive. For example, specify ['message', 'edited_channel_post', 'callback_query'] to only receive updates of these types. See :class:`aiogram.types.update.Update` for a complete list of available update types. Specify an empty list to receive all update types except *chat_member* (default). If not specified, the previous setting will be used. + :param allowed_updates: A JSON-serialized list of the update types you want your bot to receive. For example, specify :code:`["message", "edited_channel_post", "callback_query"]` to only receive updates of these types. See :class:`aiogram.types.update.Update` for a complete list of available update types. Specify an empty list to receive all update types except *chat_member* (default). If not specified, the previous setting will be used. :param request_timeout: Request timeout :return: Returns an Array of :class:`aiogram.types.update.Update` objects. """ @@ -1870,15 +1972,18 @@ class Bot(ContextInstanceMixin["Bot"]): user_id: int, is_anonymous: Optional[bool] = None, can_manage_chat: Optional[bool] = None, - can_post_messages: Optional[bool] = None, - can_edit_messages: Optional[bool] = None, can_delete_messages: Optional[bool] = None, can_manage_video_chats: Optional[bool] = None, can_restrict_members: Optional[bool] = None, can_promote_members: Optional[bool] = None, can_change_info: Optional[bool] = None, can_invite_users: Optional[bool] = None, + can_post_messages: Optional[bool] = None, + can_edit_messages: Optional[bool] = None, can_pin_messages: Optional[bool] = None, + can_post_stories: Optional[bool] = None, + can_edit_stories: Optional[bool] = None, + can_delete_stories: Optional[bool] = None, can_manage_topics: Optional[bool] = None, request_timeout: Optional[int] = None, ) -> bool: @@ -1890,16 +1995,19 @@ class Bot(ContextInstanceMixin["Bot"]): :param chat_id: Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`) :param user_id: Unique identifier of the target user :param is_anonymous: Pass :code:`True` if the administrator's presence in the chat is hidden - :param can_manage_chat: Pass :code:`True` if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege - :param can_post_messages: Pass :code:`True` if the administrator can create channel posts, channels only - :param can_edit_messages: Pass :code:`True` if the administrator can edit messages of other users and can pin messages, channels only + :param can_manage_chat: Pass :code:`True` if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege :param can_delete_messages: Pass :code:`True` if the administrator can delete messages of other users :param can_manage_video_chats: Pass :code:`True` if the administrator can manage video chats - :param can_restrict_members: Pass :code:`True` if the administrator can restrict, ban or unban chat members + :param can_restrict_members: Pass :code:`True` if the administrator can restrict, ban or unban chat members, or access supergroup statistics :param can_promote_members: Pass :code:`True` if the administrator can add new administrators with a subset of their own privileges or demote administrators that they have promoted, directly or indirectly (promoted by administrators that were appointed by him) :param can_change_info: Pass :code:`True` if the administrator can change chat title, photo and other settings :param can_invite_users: Pass :code:`True` if the administrator can invite new users to the chat + :param can_post_messages: Pass :code:`True` if the administrator can post messages in the channel, or access channel statistics; channels only + :param can_edit_messages: Pass :code:`True` if the administrator can edit messages of other users and can pin messages; channels only :param can_pin_messages: Pass :code:`True` if the administrator can pin messages, supergroups only + :param can_post_stories: Pass :code:`True` if the administrator can post stories in the channel; channels only + :param can_edit_stories: Pass :code:`True` if the administrator can edit stories posted by other users; channels only + :param can_delete_stories: Pass :code:`True` if the administrator can delete stories posted by other users; channels only :param can_manage_topics: Pass :code:`True` if the user is allowed to create, rename, close, and reopen forum topics, supergroups only :param request_timeout: Request timeout :return: Returns :code:`True` on success. @@ -1910,15 +2018,18 @@ class Bot(ContextInstanceMixin["Bot"]): user_id=user_id, is_anonymous=is_anonymous, can_manage_chat=can_manage_chat, - can_post_messages=can_post_messages, - can_edit_messages=can_edit_messages, can_delete_messages=can_delete_messages, can_manage_video_chats=can_manage_video_chats, can_restrict_members=can_restrict_members, can_promote_members=can_promote_members, can_change_info=can_change_info, can_invite_users=can_invite_users, + can_post_messages=can_post_messages, + can_edit_messages=can_edit_messages, can_pin_messages=can_pin_messages, + can_post_stories=can_post_stories, + can_edit_stories=can_edit_stories, + can_delete_stories=can_delete_stories, can_manage_topics=can_manage_topics, ) return await self(call, request_timeout=request_timeout) @@ -1964,7 +2075,7 @@ class Bot(ContextInstanceMixin["Bot"]): :param user_id: Unique identifier of the target user :param permissions: A JSON-serialized object for new user permissions :param use_independent_chat_permissions: Pass :code:`True` if chat permissions are set independently. Otherwise, the *can_send_other_messages* and *can_add_web_page_previews* permissions will imply the *can_send_messages*, *can_send_audios*, *can_send_documents*, *can_send_photos*, *can_send_videos*, *can_send_video_notes*, and *can_send_voice_notes* permissions; the *can_send_polls* permission will imply the *can_send_messages* permission. - :param until_date: Date when restrictions will be lifted for the user, unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever + :param until_date: Date when restrictions will be lifted for the user; Unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever :param request_timeout: Request timeout :return: Returns :code:`True` on success. """ @@ -3077,7 +3188,7 @@ class Bot(ContextInstanceMixin["Bot"]): self, chat_id: Optional[int] = None, menu_button: Optional[ - Union[MenuButtonDefault, MenuButtonWebApp, MenuButtonCommands] + Union[MenuButtonCommands, MenuButtonWebApp, MenuButtonDefault] ] = None, request_timeout: Optional[int] = None, ) -> bool: @@ -3234,7 +3345,17 @@ class Bot(ContextInstanceMixin["Bot"]): async def set_my_commands( self, commands: List[BotCommand], - scope: Optional[BotCommandScope] = None, + scope: Optional[ + Union[ + BotCommandScopeDefault, + BotCommandScopeAllPrivateChats, + BotCommandScopeAllGroupChats, + BotCommandScopeAllChatAdministrators, + BotCommandScopeChat, + BotCommandScopeChatAdministrators, + BotCommandScopeChatMember, + ] + ] = None, language_code: Optional[str] = None, request_timeout: Optional[int] = None, ) -> bool: @@ -3283,7 +3404,19 @@ class Bot(ContextInstanceMixin["Bot"]): async def set_passport_data_errors( self, user_id: int, - errors: List[PassportElementError], + errors: List[ + Union[ + PassportElementErrorDataField, + PassportElementErrorFrontSide, + PassportElementErrorReverseSide, + PassportElementErrorSelfie, + PassportElementErrorFile, + PassportElementErrorFiles, + PassportElementErrorTranslationFile, + PassportElementErrorTranslationFiles, + PassportElementErrorUnspecified, + ] + ], request_timeout: Optional[int] = None, ) -> bool: """ @@ -3357,7 +3490,7 @@ class Bot(ContextInstanceMixin["Bot"]): :param certificate: Upload your public key certificate so that the root certificate in use can be checked. See our `self-signed guide `_ for details. :param ip_address: The fixed IP address which will be used to send webhook requests instead of the IP address resolved through DNS :param max_connections: The maximum allowed number of simultaneous HTTPS connections to the webhook for update delivery, 1-100. Defaults to *40*. Use lower values to limit the load on your bot's server, and higher values to increase your bot's throughput. - :param allowed_updates: A JSON-serialized list of the update types you want your bot to receive. For example, specify ['message', 'edited_channel_post', 'callback_query'] to only receive updates of these types. See :class:`aiogram.types.update.Update` for a complete list of available update types. Specify an empty list to receive all update types except *chat_member* (default). If not specified, the previous setting will be used. + :param allowed_updates: A JSON-serialized list of the update types you want your bot to receive. For example, specify :code:`["message", "edited_channel_post", "callback_query"]` to only receive updates of these types. See :class:`aiogram.types.update.Update` for a complete list of available update types. Specify an empty list to receive all update types except *chat_member* (default). If not specified, the previous setting will be used. :param drop_pending_updates: Pass :code:`True` to drop all pending updates :param secret_token: A secret token to be sent in a header 'X-Telegram-Bot-Api-Secret-Token' in every webhook request, 1-256 characters. Only characters :code:`A-Z`, :code:`a-z`, :code:`0-9`, :code:`_` and :code:`-` are allowed. The header is useful to ensure that the request comes from a webhook set by you. :param request_timeout: Request timeout @@ -3963,3 +4096,23 @@ class Bot(ContextInstanceMixin["Bot"]): language_code=language_code, ) return await self(call, request_timeout=request_timeout) + + async def unpin_all_general_forum_topic_messages( + self, + chat_id: Union[int, str], + request_timeout: Optional[int] = None, + ) -> bool: + """ + Use this method to clear the list of pinned messages in a General forum topic. The bot must be an administrator in the chat for this to work and must have the *can_pin_messages* administrator right in the supergroup. Returns :code:`True` on success. + + Source: https://core.telegram.org/bots/api#unpinallgeneralforumtopicmessages + + :param chat_id: Unique identifier for the target chat or username of the target supergroup (in the format :code:`@supergroupusername`) + :param request_timeout: Request timeout + :return: Returns :code:`True` on success. + """ + + call = UnpinAllGeneralForumTopicMessages( + chat_id=chat_id, + ) + return await self(call, request_timeout=request_timeout) diff --git a/aiogram/client/context_controller.py b/aiogram/client/context_controller.py new file mode 100644 index 00000000..97795a73 --- /dev/null +++ b/aiogram/client/context_controller.py @@ -0,0 +1,33 @@ +from typing import TYPE_CHECKING, Any, Optional + +from pydantic import BaseModel, PrivateAttr +from typing_extensions import Self + +if TYPE_CHECKING: + from aiogram.client.bot import Bot + + +class BotContextController(BaseModel): + _bot: Optional["Bot"] = PrivateAttr() + + def model_post_init(self, __context: Any) -> None: + self._bot = __context.get("bot") if __context else None + + def as_(self, bot: Optional["Bot"]) -> Self: + """ + Bind object to a bot instance. + + :param bot: Bot instance + :return: self + """ + self._bot = bot + return self + + @property + def bot(self) -> Optional["Bot"]: + """ + Get bot instance. + + :return: Bot instance + """ + return self._bot diff --git a/aiogram/client/session/aiohttp.py b/aiogram/client/session/aiohttp.py index 279f61f9..b92e32d2 100644 --- a/aiogram/client/session/aiohttp.py +++ b/aiogram/client/session/aiohttp.py @@ -6,6 +6,7 @@ from typing import ( TYPE_CHECKING, Any, AsyncGenerator, + AsyncIterator, Dict, Iterable, List, @@ -18,7 +19,10 @@ from typing import ( import certifi from aiohttp import BasicAuth, ClientError, ClientSession, FormData, TCPConnector +from aiohttp.hdrs import USER_AGENT +from aiohttp.http import SERVER_SOFTWARE +from aiogram.__meta__ import __version__ from aiogram.methods import TelegramMethod from ...exceptions import TelegramNetworkError @@ -121,7 +125,12 @@ class AiohttpSession(BaseSession): await self.close() if self._session is None or self._session.closed: - self._session = ClientSession(connector=self._connector_type(**self._connector_init)) + self._session = ClientSession( + connector=self._connector_type(**self._connector_init), + headers={ + USER_AGENT: f"{SERVER_SOFTWARE} aiogram/{__version__}", + }, + ) self._should_reset_connector = False return self._session @@ -130,16 +139,24 @@ class AiohttpSession(BaseSession): if self._session is not None and not self._session.closed: await self._session.close() + # Wait 250 ms for the underlying SSL connections to close + # https://docs.aiohttp.org/en/stable/client_advanced.html#graceful-shutdown + await asyncio.sleep(0.25) + def build_form_data(self, bot: Bot, method: TelegramMethod[TelegramType]) -> FormData: form = FormData(quote_fields=False) files: Dict[str, InputFile] = {} - for key, value in method.dict().items(): + for key, value in method.model_dump(warnings=False).items(): value = self.prepare_value(value, bot=bot, files=files) if not value: continue form.add_field(key, value) for key, value in files.items(): - form.add_field(key, value, filename=value.filename or key) + form.add_field( + key, + value.read(bot), + filename=value.filename or key, + ) return form async def make_request( @@ -159,15 +176,27 @@ class AiohttpSession(BaseSession): raise TelegramNetworkError(method=method, message="Request timeout error") except ClientError as e: raise TelegramNetworkError(method=method, message=f"{type(e).__name__}: {e}") - response = self.check_response(method=method, status_code=resp.status, content=raw_result) + response = self.check_response( + bot=bot, method=method, status_code=resp.status, content=raw_result + ) return cast(TelegramType, response.result) async def stream_content( - self, url: str, timeout: int, chunk_size: int, raise_for_status: bool + self, + url: str, + headers: Optional[Dict[str, Any]] = None, + timeout: int = 30, + chunk_size: int = 65536, + raise_for_status: bool = True, ) -> AsyncGenerator[bytes, None]: + if headers is None: + headers = {} + session = await self.create_session() - async with session.get(url, timeout=timeout, raise_for_status=raise_for_status) as resp: + async with session.get( + url, timeout=timeout, headers=headers, raise_for_status=raise_for_status + ) as resp: async for chunk in resp.content.iter_chunked(chunk_size): yield chunk diff --git a/aiogram/client/session/base.py b/aiogram/client/session/base.py index a66eb7cc..650b44bc 100644 --- a/aiogram/client/session/base.py +++ b/aiogram/client/session/base.py @@ -53,6 +53,12 @@ DEFAULT_TIMEOUT: Final[float] = 60.0 class BaseSession(abc.ABC): + """ + This is base class for all HTTP sessions in aiogram. + + If you want to create your own session, you must inherit from this class. + """ + def __init__( self, api: TelegramAPIServer = PRODUCTION, @@ -75,7 +81,7 @@ class BaseSession(abc.ABC): self.middleware = RequestMiddlewareManager() def check_response( - self, method: TelegramMethod[TelegramType], status_code: int, content: str + self, bot: Bot, method: TelegramMethod[TelegramType], status_code: int, content: str ) -> Response[TelegramType]: """ Check response status @@ -89,7 +95,8 @@ class BaseSession(abc.ABC): raise ClientDecodeError("Failed to decode object", e, content) try: - response = method.build_response(json_data) + response_type = Response[method.__returning__] # type: ignore + response = response_type.model_validate(json_data, context={"bot": bot}) except ValidationError as e: raise ClientDecodeError("Failed to deserialize object", e, json_data) @@ -158,7 +165,12 @@ class BaseSession(abc.ABC): @abc.abstractmethod async def stream_content( - self, url: str, timeout: int, chunk_size: int, raise_for_status: bool + self, + url: str, + headers: Optional[Dict[str, Any]] = None, + timeout: int = 30, + chunk_size: int = 65536, + raise_for_status: bool = True, ) -> AsyncGenerator[bytes, None]: # pragma: no cover """ Stream reader diff --git a/aiogram/client/session/middlewares/base.py b/aiogram/client/session/middlewares/base.py index 90dcd09f..c5f3e7cf 100644 --- a/aiogram/client/session/middlewares/base.py +++ b/aiogram/client/session/middlewares/base.py @@ -1,7 +1,7 @@ from __future__ import annotations from abc import ABC, abstractmethod -from typing import TYPE_CHECKING, Awaitable, Callable, Union +from typing import TYPE_CHECKING, Protocol from aiogram.methods import Response, TelegramMethod from aiogram.methods.base import TelegramType @@ -9,16 +9,24 @@ from aiogram.methods.base import TelegramType if TYPE_CHECKING: from ...bot import Bot -NextRequestMiddlewareType = Callable[ - ["Bot", TelegramMethod[TelegramType]], Awaitable[Response[TelegramType]] -] -RequestMiddlewareType = Union[ - "BaseRequestMiddleware", - Callable[ - [NextRequestMiddlewareType[TelegramType], "Bot", TelegramMethod[TelegramType]], - Awaitable[Response[TelegramType]], - ], -] + +class NextRequestMiddlewareType(Protocol[TelegramType]): # pragma: no cover + async def __call__( + self, + bot: "Bot", + method: TelegramMethod[TelegramType], + ) -> Response[TelegramType]: + pass + + +class RequestMiddlewareType(Protocol): # pragma: no cover + async def __call__( + self, + make_request: NextRequestMiddlewareType[TelegramType], + bot: "Bot", + method: TelegramMethod[TelegramType], + ) -> Response[TelegramType]: + pass class BaseRequestMiddleware(ABC): diff --git a/aiogram/client/session/middlewares/manager.py b/aiogram/client/session/middlewares/manager.py index 0e76801e..78015309 100644 --- a/aiogram/client/session/middlewares/manager.py +++ b/aiogram/client/session/middlewares/manager.py @@ -1,68 +1,48 @@ from __future__ import annotations from functools import partial -from typing import ( - TYPE_CHECKING, - Any, - Awaitable, - Callable, - List, - Optional, - Sequence, - Union, - overload, -) +from typing import Any, Callable, List, Optional, Sequence, Union, cast, overload from aiogram.client.session.middlewares.base import ( NextRequestMiddlewareType, RequestMiddlewareType, ) -from aiogram.methods import Response -from aiogram.methods.base import TelegramMethod, TelegramType -from aiogram.types import TelegramObject - -if TYPE_CHECKING: - from aiogram import Bot +from aiogram.methods.base import TelegramType -class RequestMiddlewareManager(Sequence[RequestMiddlewareType[TelegramObject]]): +class RequestMiddlewareManager(Sequence[RequestMiddlewareType]): def __init__(self) -> None: - self._middlewares: List[RequestMiddlewareType[TelegramObject]] = [] + self._middlewares: List[RequestMiddlewareType] = [] def register( self, - middleware: RequestMiddlewareType[TelegramObject], - ) -> RequestMiddlewareType[TelegramObject]: + middleware: RequestMiddlewareType, + ) -> RequestMiddlewareType: self._middlewares.append(middleware) return middleware - def unregister(self, middleware: RequestMiddlewareType[TelegramObject]) -> None: + def unregister(self, middleware: RequestMiddlewareType) -> None: self._middlewares.remove(middleware) def __call__( self, - middleware: Optional[RequestMiddlewareType[TelegramObject]] = None, - ) -> Union[ - Callable[[RequestMiddlewareType[TelegramObject]], RequestMiddlewareType[TelegramObject]], - RequestMiddlewareType[TelegramObject], - ]: + middleware: Optional[RequestMiddlewareType] = None, + ) -> Union[Callable[[RequestMiddlewareType], RequestMiddlewareType], RequestMiddlewareType,]: if middleware is None: return self.register return self.register(middleware) @overload - def __getitem__(self, item: int) -> RequestMiddlewareType[TelegramObject]: + def __getitem__(self, item: int) -> RequestMiddlewareType: pass @overload - def __getitem__(self, item: slice) -> Sequence[RequestMiddlewareType[TelegramObject]]: + def __getitem__(self, item: slice) -> Sequence[RequestMiddlewareType]: pass def __getitem__( self, item: Union[int, slice] - ) -> Union[ - RequestMiddlewareType[TelegramObject], Sequence[RequestMiddlewareType[TelegramObject]] - ]: + ) -> Union[RequestMiddlewareType, Sequence[RequestMiddlewareType]]: return self._middlewares[item] def __len__(self) -> int: @@ -70,10 +50,10 @@ class RequestMiddlewareManager(Sequence[RequestMiddlewareType[TelegramObject]]): def wrap_middlewares( self, - callback: Callable[[Bot, TelegramMethod[TelegramType]], Awaitable[Response[TelegramType]]], + callback: NextRequestMiddlewareType[TelegramType], **kwargs: Any, ) -> NextRequestMiddlewareType[TelegramType]: middleware = partial(callback, **kwargs) for m in reversed(self._middlewares): - middleware = partial(m, middleware) # type: ignore - return middleware + middleware = partial(m, middleware) + return cast(NextRequestMiddlewareType[TelegramType], middleware) diff --git a/aiogram/dispatcher/dispatcher.py b/aiogram/dispatcher/dispatcher.py index 9c61a447..e3eb654a 100644 --- a/aiogram/dispatcher/dispatcher.py +++ b/aiogram/dispatcher/dispatcher.py @@ -6,7 +6,7 @@ import signal import warnings from asyncio import CancelledError, Event, Future, Lock from contextlib import suppress -from typing import Any, AsyncGenerator, Dict, List, Optional, Union +from typing import Any, AsyncGenerator, Dict, List, Optional, Set, Union from .. import loggers from ..client.bot import Bot @@ -18,6 +18,7 @@ from ..fsm.strategy import FSMStrategy from ..methods import GetUpdates, TelegramMethod from ..methods.base import TelegramType from ..types import Update, User +from ..types.base import UNSET, UNSET_TYPE from ..types.update import UpdateTypeLookupError from ..utils.backoff import Backoff, BackoffConfig from .event.bases import UNHANDLED, SkipHandler @@ -94,6 +95,7 @@ class Dispatcher(Router): self._running_lock = Lock() self._stop_signal: Optional[Event] = None self._stopped_signal: Optional[Event] = None + self._handle_update_tasks: Set[asyncio.Task[Any]] = set() def __getitem__(self, item: str) -> Any: return self.workflow_data[item] @@ -142,7 +144,16 @@ class Dispatcher(Router): handled = False start_time = loop.time() - token = Bot.set_current(bot) + if update.bot != bot: + # Re-mounting update to the current bot instance for making possible to + # use it in shortcuts. + # Here is update is re-created because we need to propagate context to + # all nested objects and attributes of the Update, but it + # is impossible without roundtrip to JSON :( + # The preferred way is that pass already mounted Bot instance to this update + # before call feed_update method + update = Update.model_validate(update.model_dump(), context={"bot": bot}) + try: response = await self.update.wrap_outer_middleware( self.update.trigger, @@ -165,7 +176,6 @@ class Dispatcher(Router): duration, bot.id, ) - Bot.reset_current(token) async def feed_raw_update(self, bot: Bot, update: Dict[str, Any], **kwargs: Any) -> Any: """ @@ -175,7 +185,7 @@ class Dispatcher(Router): :param update: :param kwargs: """ - parsed_update = Update(**update) + parsed_update = Update.model_validate(update, context={"bot": bot}) return await self.feed_update(bot=bot, update=parsed_update, **kwargs) @classmethod @@ -255,7 +265,8 @@ class Dispatcher(Router): warnings.warn( "Detected unknown update type.\n" "Seems like Telegram Bot API was updated and you have " - "installed not latest version of aiogram framework", + "installed not latest version of aiogram framework" + f"\nUpdate: {update.model_dump_json(exclude_unset=True)}", RuntimeWarning, ) raise SkipHandler() from e @@ -339,7 +350,9 @@ class Dispatcher(Router): ): handle_update = self._process_update(bot=bot, update=update, **kwargs) if handle_as_tasks: - asyncio.create_task(handle_update) + handle_update_task = asyncio.create_task(handle_update) + self._handle_update_tasks.add(handle_update_task) + handle_update_task.add_done_callback(self._handle_update_tasks.discard) else: await handle_update finally: @@ -367,7 +380,7 @@ class Dispatcher(Router): self, bot: Bot, update: Union[Update, Dict[str, Any]], _timeout: float = 55, **kwargs: Any ) -> Optional[TelegramMethod[TelegramType]]: if not isinstance(update, Update): # Allow to use raw updates - update = Update(**update) + update = Update.model_validate(update, context={"bot": bot}) ctx = contextvars.copy_context() loop = asyncio.get_running_loop() @@ -450,7 +463,7 @@ class Dispatcher(Router): polling_timeout: int = 10, handle_as_tasks: bool = True, backoff_config: BackoffConfig = DEFAULT_BACKOFF_CONFIG, - allowed_updates: Optional[List[str]] = None, + allowed_updates: Optional[Union[List[str], UNSET_TYPE]] = UNSET, handle_signals: bool = True, close_bot_session: bool = True, **kwargs: Any, @@ -458,11 +471,12 @@ class Dispatcher(Router): """ Polling runner - :param bots: Bot instances (one or mre) + :param bots: Bot instances (one or more) :param polling_timeout: Long-polling wait time :param handle_as_tasks: Run task for each event and no wait result :param backoff_config: backoff-retry config :param allowed_updates: List of the update types you want your bot to receive + By default, all used update types are enabled (resolved from handlers) :param handle_signals: handle signals (SIGINT/SIGTERM) :param close_bot_session: close bot sessions on shutdown :param kwargs: contextual data @@ -482,6 +496,9 @@ class Dispatcher(Router): if self._stopped_signal is None: self._stopped_signal = Event() + if allowed_updates is UNSET: + allowed_updates = self.resolve_used_update_types() + self._stop_signal.clear() self._stopped_signal.clear() @@ -500,11 +517,13 @@ class Dispatcher(Router): workflow_data = { "dispatcher": self, "bots": bots, - "bot": bots[-1], - **kwargs, **self.workflow_data, + **kwargs, } - await self.emit_startup(**workflow_data) + if "bot" in workflow_data: + workflow_data.pop("bot") + + await self.emit_startup(bot=bots[-1], **workflow_data) loggers.dispatcher.info("Start polling") try: tasks: List[asyncio.Task[Any]] = [ @@ -515,7 +534,7 @@ class Dispatcher(Router): polling_timeout=polling_timeout, backoff_config=backoff_config, allowed_updates=allowed_updates, - **kwargs, + **workflow_data, ) ) for bot in bots @@ -534,7 +553,7 @@ class Dispatcher(Router): finally: loggers.dispatcher.info("Polling stopped") try: - await self.emit_shutdown(**workflow_data) + await self.emit_shutdown(bot=bots[-1], **workflow_data) finally: if close_bot_session: await asyncio.gather(*(bot.session.close() for bot in bots)) @@ -546,7 +565,7 @@ class Dispatcher(Router): polling_timeout: int = 10, handle_as_tasks: bool = True, backoff_config: BackoffConfig = DEFAULT_BACKOFF_CONFIG, - allowed_updates: Optional[List[str]] = None, + allowed_updates: Optional[Union[List[str], UNSET_TYPE]] = UNSET, handle_signals: bool = True, close_bot_session: bool = True, **kwargs: Any, diff --git a/aiogram/dispatcher/event/handler.py b/aiogram/dispatcher/event/handler.py index 2b71eed5..1045e667 100644 --- a/aiogram/dispatcher/event/handler.py +++ b/aiogram/dispatcher/event/handler.py @@ -4,7 +4,7 @@ import inspect import warnings from dataclasses import dataclass, field from functools import partial -from typing import Any, Callable, Dict, List, Optional, Tuple +from typing import Any, Callable, Dict, List, Optional, Tuple, Set from magic_filter.magic import MagicFilter as OriginalMagicFilter @@ -21,20 +21,21 @@ CallbackType = Callable[..., Any] class CallableMixin: callback: CallbackType awaitable: bool = field(init=False) - spec: inspect.FullArgSpec = field(init=False) + params: Set[str] = field(init=False) + varkw: bool = field(init=False) def __post_init__(self) -> None: callback = inspect.unwrap(self.callback) self.awaitable = inspect.isawaitable(callback) or inspect.iscoroutinefunction(callback) - self.spec = inspect.getfullargspec(callback) + spec = inspect.getfullargspec(callback) + self.params = {*spec.args, *spec.kwonlyargs} + self.varkw = spec.varkw is not None def _prepare_kwargs(self, kwargs: Dict[str, Any]) -> Dict[str, Any]: - if self.spec.varkw: + if self.varkw: return kwargs - return { - k: v for k, v in kwargs.items() if k in self.spec.args or k in self.spec.kwonlyargs - } + return {k: kwargs[k] for k in self.params if k in kwargs} async def call(self, *args: Any, **kwargs: Any) -> Any: wrapped = partial(self.callback, *args, **self._prepare_kwargs(kwargs)) diff --git a/aiogram/dispatcher/event/telegram.py b/aiogram/dispatcher/event/telegram.py index a468816c..afa8938e 100644 --- a/aiogram/dispatcher/event/telegram.py +++ b/aiogram/dispatcher/event/telegram.py @@ -40,7 +40,6 @@ class TelegramEventObserver: Register filter for all handlers of this event observer :param filters: positional filters - :param bound_filters: keyword filters """ if self._handler.filters is None: self._handler.filters = [] @@ -101,21 +100,19 @@ class TelegramEventObserver: ) return wrapped_outer(event, data) + def check_root_filters(self, event: TelegramObject, **kwargs: Any) -> Any: + return self._handler.check(event, **kwargs) + async def trigger(self, event: TelegramObject, **kwargs: Any) -> Any: """ Propagate event to handlers and stops propagation on first match. - Handler will be called when all its filters is pass. + Handler will be called when all its filters are pass. """ - # Check globally defined filters before any other handler will be checked - result, data = await self._handler.check(event, **kwargs) - if not result: - return REJECTED - kwargs.update(data) - for handler in self.handlers: + kwargs["handler"] = handler result, data = await handler.check(event, **kwargs) if result: - kwargs.update(data, handler=handler) + kwargs.update(data) try: wrapped_inner = self.outer_middleware.wrap_middlewares( self._resolve_middlewares(), diff --git a/aiogram/dispatcher/middlewares/user_context.py b/aiogram/dispatcher/middlewares/user_context.py index 9ede4334..12bb4864 100644 --- a/aiogram/dispatcher/middlewares/user_context.py +++ b/aiogram/dispatcher/middlewares/user_context.py @@ -1,5 +1,4 @@ -from contextlib import contextmanager -from typing import Any, Awaitable, Callable, Dict, Iterator, Optional, Tuple +from typing import Any, Awaitable, Callable, Dict, Optional, Tuple from aiogram.dispatcher.middlewares.base import BaseMiddleware from aiogram.types import Chat, TelegramObject, Update, User diff --git a/aiogram/dispatcher/router.py b/aiogram/dispatcher/router.py index 85c41ae8..4dd4284f 100644 --- a/aiogram/dispatcher/router.py +++ b/aiogram/dispatcher/router.py @@ -53,7 +53,7 @@ class Router: self.chat_member = TelegramEventObserver(router=self, event_name="chat_member") self.chat_join_request = TelegramEventObserver(router=self, event_name="chat_join_request") - self.errors = TelegramEventObserver(router=self, event_name="error") + self.errors = self.error = TelegramEventObserver(router=self, event_name="error") self.startup = EventObserver() self.shutdown = EventObserver() @@ -125,8 +125,17 @@ class Router: ) -> Any: response = UNHANDLED if observer: + # Check globally defined filters before any other handler will be checked. + # This check is placed here instead of `trigger` method to add possibility + # to pass context to handlers from global filters. + result, data = await observer.check_root_filters(event, **kwargs) + if not result: + return UNHANDLED + kwargs.update(data) + response = await observer.trigger(event, **kwargs) - if response is REJECTED: + if response is REJECTED: # pragma: no cover + # Possible only if some handler returns REJECTED return UNHANDLED if response is not UNHANDLED: return response @@ -184,6 +193,12 @@ class Router: router.sub_routers.append(self) def include_routers(self, *routers: Router) -> None: + """ + Attach multiple routers. + + :param routers: + :return: + """ if not routers: raise ValueError("At least one router must be provided") for router in routers: diff --git a/aiogram/enums/__init__.py b/aiogram/enums/__init__.py index 73422378..a999001c 100644 --- a/aiogram/enums/__init__.py +++ b/aiogram/enums/__init__.py @@ -3,13 +3,16 @@ from .chat_action import ChatAction from .chat_member_status import ChatMemberStatus from .chat_type import ChatType from .content_type import ContentType +from .currency import Currency from .dice_emoji import DiceEmoji +from .encrypted_passport_element import EncryptedPassportElement from .inline_query_result_type import InlineQueryResultType from .input_media_type import InputMediaType from .mask_position_point import MaskPositionPoint from .menu_button_type import MenuButtonType from .message_entity_type import MessageEntityType from .parse_mode import ParseMode +from .passport_element_error_type import PassportElementErrorType from .poll_type import PollType from .sticker_format import StickerFormat from .sticker_type import StickerType @@ -22,13 +25,16 @@ __all__ = ( "ChatMemberStatus", "ChatType", "ContentType", + "Currency", "DiceEmoji", + "EncryptedPassportElement", "InlineQueryResultType", "InputMediaType", "MaskPositionPoint", "MenuButtonType", "MessageEntityType", "ParseMode", + "PassportElementErrorType", "PollType", "StickerFormat", "StickerType", diff --git a/aiogram/enums/content_type.py b/aiogram/enums/content_type.py index 52a9bfed..d34d878e 100644 --- a/aiogram/enums/content_type.py +++ b/aiogram/enums/content_type.py @@ -14,6 +14,7 @@ class ContentType(str, Enum): DOCUMENT = "document" PHOTO = "photo" STICKER = "sticker" + STORY = "story" VIDEO = "video" VIDEO_NOTE = "video_note" VOICE = "voice" diff --git a/aiogram/enums/currency.py b/aiogram/enums/currency.py new file mode 100644 index 00000000..563651b7 --- /dev/null +++ b/aiogram/enums/currency.py @@ -0,0 +1,96 @@ +from enum import Enum + + +class Currency(str, Enum): + """ + Currencies supported by Telegram Bot API + + Source: https://core.telegram.org/bots/payments#supported-currencies + """ + + AED = "AED" + AFN = "AFN" + ALL = "ALL" + AMD = "AMD" + ARS = "ARS" + AUD = "AUD" + AZN = "AZN" + BAM = "BAM" + BDT = "BDT" + BGN = "BGN" + BND = "BND" + BOB = "BOB" + BRL = "BRL" + BYN = "BYN" + CAD = "CAD" + CHF = "CHF" + CLP = "CLP" + CNY = "CNY" + COP = "COP" + CRC = "CRC" + CZK = "CZK" + DKK = "DKK" + DOP = "DOP" + DZD = "DZD" + EGP = "EGP" + ETB = "ETB" + EUR = "EUR" + GBP = "GBP" + GEL = "GEL" + GTQ = "GTQ" + HKD = "HKD" + HNL = "HNL" + HRK = "HRK" + HUF = "HUF" + IDR = "IDR" + ILS = "ILS" + INR = "INR" + ISK = "ISK" + JMD = "JMD" + JPY = "JPY" + KES = "KES" + KGS = "KGS" + KRW = "KRW" + KZT = "KZT" + LBP = "LBP" + LKR = "LKR" + MAD = "MAD" + MDL = "MDL" + MNT = "MNT" + MUR = "MUR" + MVR = "MVR" + MXN = "MXN" + MYR = "MYR" + MZN = "MZN" + NGN = "NGN" + NIO = "NIO" + NOK = "NOK" + NPR = "NPR" + NZD = "NZD" + PAB = "PAB" + PEN = "PEN" + PHP = "PHP" + PKR = "PKR" + PLN = "PLN" + PYG = "PYG" + QAR = "QAR" + RON = "RON" + RSD = "RSD" + RUB = "RUB" + SAR = "SAR" + SEK = "SEK" + SGD = "SGD" + THB = "THB" + TJS = "TJS" + TRY = "TRY" + TTD = "TTD" + TWD = "TWD" + TZS = "TZS" + UAH = "UAH" + UGX = "UGX" + USD = "USD" + UYU = "UYU" + UZS = "UZS" + VND = "VND" + YER = "YER" + ZAR = "ZAR" diff --git a/aiogram/enums/encrypted_passport_element.py b/aiogram/enums/encrypted_passport_element.py new file mode 100644 index 00000000..ebb4b2e6 --- /dev/null +++ b/aiogram/enums/encrypted_passport_element.py @@ -0,0 +1,23 @@ +from enum import Enum + + +class EncryptedPassportElement(str, Enum): + """ + This object represents type of encrypted passport element. + + Source: https://core.telegram.org/bots/api#encryptedpassportelement + """ + + PERSONAL_DETAILS = "personal_details" + PASSPORT = "passport" + DRIVER_LICENSE = "driver_license" + IDENTITY_CARD = "identity_card" + INTERNAL_PASSPORT = "internal_passport" + ADDRESS = "address" + UTILITY_BILL = "utility_bill" + BANK_STATEMENT = "bank_statement" + RENTAL_AGREEMENT = "rental_agreement" + PASSPORT_REGISTRATION = "passport_registration" + TEMPORARY_REGISTRATION = "temporary_registration" + PHONE_NUMBER = "phone_number" + EMAIL = "email" diff --git a/aiogram/enums/passport_element_error_type.py b/aiogram/enums/passport_element_error_type.py new file mode 100644 index 00000000..cdcb4806 --- /dev/null +++ b/aiogram/enums/passport_element_error_type.py @@ -0,0 +1,19 @@ +from enum import Enum + + +class PassportElementErrorType(str, Enum): + """ + This object represents a passport element error type. + + Source: https://core.telegram.org/bots/api#passportelementerror + """ + + DATA = "data" + FRONT_SIDE = "front_side" + REVERSE_SIDE = "reverse_side" + SELFIE = "selfie" + FILE = "file" + FILES = "files" + TRANSLATION_FILE = "translation_file" + TRANSLATION_FILES = "translation_files" + UNSPECIFIED = "unspecified" diff --git a/aiogram/exceptions.py b/aiogram/exceptions.py index 1c1e59fb..2632fcdc 100644 --- a/aiogram/exceptions.py +++ b/aiogram/exceptions.py @@ -6,10 +6,16 @@ from aiogram.utils.link import docs_url class AiogramError(Exception): - pass + """ + Base exception for all aiogram errors. + """ class DetailedAiogramError(AiogramError): + """ + Base exception for all aiogram errors with detailed message. + """ + url: Optional[str] = None def __init__(self, message: str) -> None: @@ -26,14 +32,26 @@ class DetailedAiogramError(AiogramError): class CallbackAnswerException(AiogramError): - pass + """ + Exception for callback answer. + """ class UnsupportedKeywordArgument(DetailedAiogramError): + """ + Exception raised when a keyword argument is passed as filter. + """ + url = docs_url("migration_2_to_3.html", fragment_="filtering-events") class TelegramAPIError(DetailedAiogramError): + """ + Base exception for all Telegram API errors. + """ + + label: str = "Telegram server says" + def __init__( self, method: TelegramMethod[TelegramType], @@ -44,14 +62,22 @@ class TelegramAPIError(DetailedAiogramError): def __str__(self) -> str: original_message = super().__str__() - return f"Telegram server says {original_message}" + return f"{self.label} - {original_message}" class TelegramNetworkError(TelegramAPIError): - pass + """ + Base exception for all Telegram network errors. + """ + + label = "HTTP Client says" class TelegramRetryAfter(TelegramAPIError): + """ + Exception raised when flood control exceeds. + """ + url = "https://core.telegram.org/bots/faq#my-bot-is-hitting-limits-how-do-i-avoid-this" def __init__( @@ -71,6 +97,10 @@ class TelegramRetryAfter(TelegramAPIError): class TelegramMigrateToChat(TelegramAPIError): + """ + Exception raised when chat has been migrated to a supergroup. + """ + url = "https://core.telegram.org/bots/api#responseparameters" def __init__( @@ -88,38 +118,66 @@ class TelegramMigrateToChat(TelegramAPIError): class TelegramBadRequest(TelegramAPIError): - pass + """ + Exception raised when request is malformed. + """ class TelegramNotFound(TelegramAPIError): - pass + """ + Exception raised when chat, message, user, etc. not found. + """ class TelegramConflictError(TelegramAPIError): - pass + """ + Exception raised when bot token is already used by another application in polling mode. + """ class TelegramUnauthorizedError(TelegramAPIError): - pass + """ + Exception raised when bot token is invalid. + """ class TelegramForbiddenError(TelegramAPIError): - pass + """ + Exception raised when bot is kicked from chat or etc. + """ class TelegramServerError(TelegramAPIError): - pass + """ + Exception raised when Telegram server returns 5xx error. + """ class RestartingTelegram(TelegramServerError): - pass + """ + Exception raised when Telegram server is restarting. + + It seems like this error is not used by Telegram anymore, + but it's still here for backward compatibility. + + Currently, you should expect that Telegram can raise RetryAfter (with timeout 5 seconds) + error instead of this one. + """ class TelegramEntityTooLarge(TelegramNetworkError): + """ + Exception raised when you are trying to send a file that is too large. + """ + url = "https://core.telegram.org/bots/api#sending-files" class ClientDecodeError(AiogramError): + """ + Exception raised when client can't decode response. (Malformed response, etc.) + """ + def __init__(self, message: str, original: Exception, data: Any) -> None: self.message = message self.original = original diff --git a/aiogram/filters/callback_data.py b/aiogram/filters/callback_data.py index 05d7783d..7a09dedb 100644 --- a/aiogram/filters/callback_data.py +++ b/aiogram/filters/callback_data.py @@ -85,7 +85,7 @@ class CallbackData(BaseModel): :return: valid callback data for Telegram Bot API """ result = [self.__prefix__] - for key, value in self.dict().items(): + for key, value in self.model_dump(mode="json").items(): encoded = self._encode_value(key, value) if self.__separator__ in encoded: raise ValueError( @@ -110,7 +110,7 @@ class CallbackData(BaseModel): :return: instance of CallbackData """ prefix, *parts = value.split(cls.__separator__) - names = cls.__fields__.keys() + names = cls.model_fields.keys() if len(parts) != len(names): raise TypeError( f"Callback data {cls.__name__!r} takes {len(names)} arguments " @@ -120,8 +120,8 @@ class CallbackData(BaseModel): raise ValueError(f"Bad prefix ({prefix!r} != {cls.__prefix__!r})") payload = {} for k, v in zip(names, parts): # type: str, Optional[str] - if field := cls.__fields__.get(k): - if v == "" and not field.required: + if field := cls.model_fields.get(k): + if v == "" and not field.is_required(): v = None payload[k] = v return cls(**payload) diff --git a/aiogram/filters/chat_member_updated.py b/aiogram/filters/chat_member_updated.py index 7671ba4e..23cf0e9c 100644 --- a/aiogram/filters/chat_member_updated.py +++ b/aiogram/filters/chat_member_updated.py @@ -74,9 +74,12 @@ class _MemberStatusMarker: return hash((self.name, self.is_member)) def check(self, *, member: ChatMember) -> bool: - if self.is_member is not None and member.is_member != self.is_member: + # Not all member types have `is_member` attribute + is_member = getattr(member, "is_member", None) + status = getattr(member, "status", None) + if self.is_member is not None and is_member != self.is_member: return False - return self.name == member.status + return self.name == status class _MemberStatusGroupMarker: diff --git a/aiogram/filters/command.py b/aiogram/filters/command.py index 85ff4de6..6e654531 100644 --- a/aiogram/filters/command.py +++ b/aiogram/filters/command.py @@ -191,7 +191,7 @@ class Command(Filter): return command # noqa: RET504 def do_magic(self, command: CommandObject) -> Any: - if not self.magic: + if self.magic is None: return command result = self.magic.resolve(command) if not result: diff --git a/aiogram/filters/state.py b/aiogram/filters/state.py index 5ad65ae5..82a141c9 100644 --- a/aiogram/filters/state.py +++ b/aiogram/filters/state.py @@ -27,7 +27,7 @@ class StateFilter(Filter): ) async def __call__( - self, obj: Union[TelegramObject], raw_state: Optional[str] = None + self, obj: TelegramObject, raw_state: Optional[str] = None ) -> Union[bool, Dict[str, Any]]: allowed_states = cast(Sequence[StateType], self.states) for allowed_state in allowed_states: diff --git a/aiogram/fsm/middleware.py b/aiogram/fsm/middleware.py index 6de91a83..d1f1d973 100644 --- a/aiogram/fsm/middleware.py +++ b/aiogram/fsm/middleware.py @@ -34,8 +34,10 @@ class FSMContextMiddleware(BaseMiddleware): context = self.resolve_event_context(bot, data) data["fsm_storage"] = self.storage if context: - data.update({"state": context, "raw_state": await context.get_state()}) + # Bugfix: https://github.com/aiogram/aiogram/issues/1317 + # State should be loaded after lock is acquired async with self.events_isolation.lock(key=context.key): + data.update({"state": context, "raw_state": await context.get_state()}) return await handler(event, data) return await handler(event, data) diff --git a/aiogram/fsm/storage/redis.py b/aiogram/fsm/storage/redis.py index 6a55d881..33e44be4 100644 --- a/aiogram/fsm/storage/redis.py +++ b/aiogram/fsm/storage/redis.py @@ -138,7 +138,7 @@ class RedisStorage(BaseStorage): return RedisEventIsolation(redis=self.redis, key_builder=self.key_builder, **kwargs) async def close(self) -> None: - await self.redis.close() + await self.redis.aclose(close_connection_pool=True) async def set_state( self, diff --git a/aiogram/fsm/strategy.py b/aiogram/fsm/strategy.py index 227924cb..f68aa045 100644 --- a/aiogram/fsm/strategy.py +++ b/aiogram/fsm/strategy.py @@ -6,7 +6,8 @@ class FSMStrategy(Enum): USER_IN_CHAT = auto() CHAT = auto() GLOBAL_USER = auto() - USER_IN_THREAD = auto() + USER_IN_TOPIC = auto() + CHAT_TOPIC = auto() def apply_strategy( @@ -19,6 +20,9 @@ def apply_strategy( return chat_id, chat_id, None if strategy == FSMStrategy.GLOBAL_USER: return user_id, user_id, None - if strategy == FSMStrategy.USER_IN_THREAD: + if strategy == FSMStrategy.USER_IN_TOPIC: return chat_id, user_id, thread_id + if strategy == FSMStrategy.CHAT_TOPIC: + return chat_id, chat_id, thread_id + return chat_id, user_id, None diff --git a/aiogram/handlers/base.py b/aiogram/handlers/base.py index 076016fa..0eb1b420 100644 --- a/aiogram/handlers/base.py +++ b/aiogram/handlers/base.py @@ -32,7 +32,7 @@ class BaseHandler(BaseHandlerMixin[T], ABC): if "bot" in self.data: return cast(Bot, self.data["bot"]) - return Bot.get_current(no_error=False) + raise RuntimeError("Bot instance not found in the context") @property def update(self) -> Update: diff --git a/aiogram/methods/__init__.py b/aiogram/methods/__init__.py index fd887d7e..32909f4a 100644 --- a/aiogram/methods/__init__.py +++ b/aiogram/methods/__init__.py @@ -110,6 +110,7 @@ from .unban_chat_sender_chat import UnbanChatSenderChat from .unhide_general_forum_topic import UnhideGeneralForumTopic from .unpin_all_chat_messages import UnpinAllChatMessages from .unpin_all_forum_topic_messages import UnpinAllForumTopicMessages +from .unpin_all_general_forum_topic_messages import UnpinAllGeneralForumTopicMessages from .unpin_chat_message import UnpinChatMessage from .upload_sticker_file import UploadStickerFile @@ -228,6 +229,7 @@ __all__ = ( "UnhideGeneralForumTopic", "UnpinAllChatMessages", "UnpinAllForumTopicMessages", + "UnpinAllGeneralForumTopicMessages", "UnpinChatMessage", "UploadStickerFile", ) diff --git a/aiogram/methods/add_sticker_to_set.py b/aiogram/methods/add_sticker_to_set.py index 49759b84..b9ec036e 100644 --- a/aiogram/methods/add_sticker_to_set.py +++ b/aiogram/methods/add_sticker_to_set.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any from ..types import InputSticker from .base import TelegramMethod @@ -22,3 +22,21 @@ class AddStickerToSet(TelegramMethod[bool]): """Sticker set name""" sticker: InputSticker """A JSON-serialized object with information about the added sticker. If exactly the same sticker had already been added to the set, then the set isn't changed.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + user_id: int, + name: str, + sticker: InputSticker, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(user_id=user_id, name=name, sticker=sticker, **__pydantic_kwargs) diff --git a/aiogram/methods/answer_callback_query.py b/aiogram/methods/answer_callback_query.py index 4b3e16fd..15ed1bf5 100644 --- a/aiogram/methods/answer_callback_query.py +++ b/aiogram/methods/answer_callback_query.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramMethod @@ -27,3 +27,30 @@ class AnswerCallbackQuery(TelegramMethod[bool]): """URL that will be opened by the user's client. If you have created a :class:`aiogram.types.game.Game` and accepted the conditions via `@BotFather `_, specify the URL that opens your game - note that this will only work if the query comes from a `https://core.telegram.org/bots/api#inlinekeyboardbutton `_ *callback_game* button.""" cache_time: Optional[int] = None """The maximum amount of time in seconds that the result of the callback query may be cached client-side. Telegram apps will support caching starting in version 3.14. Defaults to 0.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + callback_query_id: str, + text: Optional[str] = None, + show_alert: Optional[bool] = None, + url: Optional[str] = None, + cache_time: Optional[int] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + callback_query_id=callback_query_id, + text=text, + show_alert=show_alert, + url=url, + cache_time=cache_time, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/answer_inline_query.py b/aiogram/methods/answer_inline_query.py index 7b6b6d88..acfb80ab 100644 --- a/aiogram/methods/answer_inline_query.py +++ b/aiogram/methods/answer_inline_query.py @@ -1,10 +1,32 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Any, List, Optional, Union from pydantic import Field -from ..types import InlineQueryResult, InlineQueryResultsButton +from ..types import ( + InlineQueryResultArticle, + InlineQueryResultAudio, + InlineQueryResultCachedAudio, + InlineQueryResultCachedDocument, + InlineQueryResultCachedGif, + InlineQueryResultCachedMpeg4Gif, + InlineQueryResultCachedPhoto, + InlineQueryResultCachedSticker, + InlineQueryResultCachedVideo, + InlineQueryResultCachedVoice, + InlineQueryResultContact, + InlineQueryResultDocument, + InlineQueryResultGame, + InlineQueryResultGif, + InlineQueryResultLocation, + InlineQueryResultMpeg4Gif, + InlineQueryResultPhoto, + InlineQueryResultsButton, + InlineQueryResultVenue, + InlineQueryResultVideo, + InlineQueryResultVoice, +) from .base import TelegramMethod @@ -22,7 +44,30 @@ class AnswerInlineQuery(TelegramMethod[bool]): inline_query_id: str """Unique identifier for the answered query""" - results: List[InlineQueryResult] + results: List[ + Union[ + InlineQueryResultCachedAudio, + InlineQueryResultCachedDocument, + InlineQueryResultCachedGif, + InlineQueryResultCachedMpeg4Gif, + InlineQueryResultCachedPhoto, + InlineQueryResultCachedSticker, + InlineQueryResultCachedVideo, + InlineQueryResultCachedVoice, + InlineQueryResultArticle, + InlineQueryResultAudio, + InlineQueryResultContact, + InlineQueryResultGame, + InlineQueryResultDocument, + InlineQueryResultGif, + InlineQueryResultLocation, + InlineQueryResultMpeg4Gif, + InlineQueryResultPhoto, + InlineQueryResultVenue, + InlineQueryResultVideo, + InlineQueryResultVoice, + ] + ] """A JSON-serialized array of results for the inline query""" cache_time: Optional[int] = None """The maximum amount of time in seconds that the result of the inline query may be cached on the server. Defaults to 300.""" @@ -32,13 +77,69 @@ class AnswerInlineQuery(TelegramMethod[bool]): """Pass the offset that a client should send in the next query with the same text to receive more results. Pass an empty string if there are no more results or if you don't support pagination. Offset length can't exceed 64 bytes.""" button: Optional[InlineQueryResultsButton] = None """A JSON-serialized object describing a button to be shown above inline query results""" - switch_pm_parameter: Optional[str] = Field(None, deprecated=True) + switch_pm_parameter: Optional[str] = Field(None, json_schema_extra={"deprecated": True}) """`Deep-linking `_ parameter for the /start message sent to the bot when user presses the switch button. 1-64 characters, only :code:`A-Z`, :code:`a-z`, :code:`0-9`, :code:`_` and :code:`-` are allowed. .. deprecated:: API:6.7 https://core.telegram.org/bots/api-changelog#april-21-2023""" - switch_pm_text: Optional[str] = Field(None, deprecated=True) + switch_pm_text: Optional[str] = Field(None, json_schema_extra={"deprecated": True}) """If passed, clients will display a button with specified text that switches the user to a private chat with the bot and sends the bot a start message with the parameter *switch_pm_parameter* .. deprecated:: API:6.7 https://core.telegram.org/bots/api-changelog#april-21-2023""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + inline_query_id: str, + results: List[ + Union[ + InlineQueryResultCachedAudio, + InlineQueryResultCachedDocument, + InlineQueryResultCachedGif, + InlineQueryResultCachedMpeg4Gif, + InlineQueryResultCachedPhoto, + InlineQueryResultCachedSticker, + InlineQueryResultCachedVideo, + InlineQueryResultCachedVoice, + InlineQueryResultArticle, + InlineQueryResultAudio, + InlineQueryResultContact, + InlineQueryResultGame, + InlineQueryResultDocument, + InlineQueryResultGif, + InlineQueryResultLocation, + InlineQueryResultMpeg4Gif, + InlineQueryResultPhoto, + InlineQueryResultVenue, + InlineQueryResultVideo, + InlineQueryResultVoice, + ] + ], + cache_time: Optional[int] = None, + is_personal: Optional[bool] = None, + next_offset: Optional[str] = None, + button: Optional[InlineQueryResultsButton] = None, + switch_pm_parameter: Optional[str] = None, + switch_pm_text: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + inline_query_id=inline_query_id, + results=results, + cache_time=cache_time, + is_personal=is_personal, + next_offset=next_offset, + button=button, + switch_pm_parameter=switch_pm_parameter, + switch_pm_text=switch_pm_text, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/answer_pre_checkout_query.py b/aiogram/methods/answer_pre_checkout_query.py index a87929fb..479d76c9 100644 --- a/aiogram/methods/answer_pre_checkout_query.py +++ b/aiogram/methods/answer_pre_checkout_query.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramMethod @@ -21,3 +21,26 @@ class AnswerPreCheckoutQuery(TelegramMethod[bool]): """Specify :code:`True` if everything is alright (goods are available, etc.) and the bot is ready to proceed with the order. Use :code:`False` if there are any problems.""" error_message: Optional[str] = None """Required if *ok* is :code:`False`. Error message in human readable form that explains the reason for failure to proceed with the checkout (e.g. "Sorry, somebody just bought the last of our amazing black T-shirts while you were busy filling out your payment details. Please choose a different color or garment!"). Telegram will display this message to the user.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + pre_checkout_query_id: str, + ok: bool, + error_message: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + pre_checkout_query_id=pre_checkout_query_id, + ok=ok, + error_message=error_message, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/answer_shipping_query.py b/aiogram/methods/answer_shipping_query.py index 4e62d0cb..ad0e9dc0 100644 --- a/aiogram/methods/answer_shipping_query.py +++ b/aiogram/methods/answer_shipping_query.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Any, List, Optional from ..types import ShippingOption from .base import TelegramMethod @@ -24,3 +24,28 @@ class AnswerShippingQuery(TelegramMethod[bool]): """Required if *ok* is :code:`True`. A JSON-serialized array of available shipping options.""" error_message: Optional[str] = None """Required if *ok* is :code:`False`. Error message in human readable form that explains why it is impossible to complete the order (e.g. "Sorry, delivery to your desired address is unavailable'). Telegram will display this message to the user.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + shipping_query_id: str, + ok: bool, + shipping_options: Optional[List[ShippingOption]] = None, + error_message: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + shipping_query_id=shipping_query_id, + ok=ok, + shipping_options=shipping_options, + error_message=error_message, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/answer_web_app_query.py b/aiogram/methods/answer_web_app_query.py index d45e249d..4dc87ebd 100644 --- a/aiogram/methods/answer_web_app_query.py +++ b/aiogram/methods/answer_web_app_query.py @@ -1,8 +1,30 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any, Union -from ..types import InlineQueryResult, SentWebAppMessage +from ..types import ( + InlineQueryResultArticle, + InlineQueryResultAudio, + InlineQueryResultCachedAudio, + InlineQueryResultCachedDocument, + InlineQueryResultCachedGif, + InlineQueryResultCachedMpeg4Gif, + InlineQueryResultCachedPhoto, + InlineQueryResultCachedSticker, + InlineQueryResultCachedVideo, + InlineQueryResultCachedVoice, + InlineQueryResultContact, + InlineQueryResultDocument, + InlineQueryResultGame, + InlineQueryResultGif, + InlineQueryResultLocation, + InlineQueryResultMpeg4Gif, + InlineQueryResultPhoto, + InlineQueryResultVenue, + InlineQueryResultVideo, + InlineQueryResultVoice, + SentWebAppMessage, +) from .base import TelegramMethod @@ -18,5 +40,64 @@ class AnswerWebAppQuery(TelegramMethod[SentWebAppMessage]): web_app_query_id: str """Unique identifier for the query to be answered""" - result: InlineQueryResult + result: Union[ + InlineQueryResultCachedAudio, + InlineQueryResultCachedDocument, + InlineQueryResultCachedGif, + InlineQueryResultCachedMpeg4Gif, + InlineQueryResultCachedPhoto, + InlineQueryResultCachedSticker, + InlineQueryResultCachedVideo, + InlineQueryResultCachedVoice, + InlineQueryResultArticle, + InlineQueryResultAudio, + InlineQueryResultContact, + InlineQueryResultGame, + InlineQueryResultDocument, + InlineQueryResultGif, + InlineQueryResultLocation, + InlineQueryResultMpeg4Gif, + InlineQueryResultPhoto, + InlineQueryResultVenue, + InlineQueryResultVideo, + InlineQueryResultVoice, + ] """A JSON-serialized object describing the message to be sent""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + web_app_query_id: str, + result: Union[ + InlineQueryResultCachedAudio, + InlineQueryResultCachedDocument, + InlineQueryResultCachedGif, + InlineQueryResultCachedMpeg4Gif, + InlineQueryResultCachedPhoto, + InlineQueryResultCachedSticker, + InlineQueryResultCachedVideo, + InlineQueryResultCachedVoice, + InlineQueryResultArticle, + InlineQueryResultAudio, + InlineQueryResultContact, + InlineQueryResultGame, + InlineQueryResultDocument, + InlineQueryResultGif, + InlineQueryResultLocation, + InlineQueryResultMpeg4Gif, + InlineQueryResultPhoto, + InlineQueryResultVenue, + InlineQueryResultVideo, + InlineQueryResultVoice, + ], + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(web_app_query_id=web_app_query_id, result=result, **__pydantic_kwargs) diff --git a/aiogram/methods/approve_chat_join_request.py b/aiogram/methods/approve_chat_join_request.py index 83e34599..2f4995b4 100644 --- a/aiogram/methods/approve_chat_join_request.py +++ b/aiogram/methods/approve_chat_join_request.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -19,3 +19,16 @@ class ApproveChatJoinRequest(TelegramMethod[bool]): """Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`)""" user_id: int """Unique identifier of the target user""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, chat_id: Union[int, str], user_id: int, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, user_id=user_id, **__pydantic_kwargs) diff --git a/aiogram/methods/ban_chat_member.py b/aiogram/methods/ban_chat_member.py index ecc468ee..947fccae 100644 --- a/aiogram/methods/ban_chat_member.py +++ b/aiogram/methods/ban_chat_member.py @@ -1,7 +1,7 @@ from __future__ import annotations import datetime -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from .base import TelegramMethod @@ -21,6 +21,31 @@ class BanChatMember(TelegramMethod[bool]): user_id: int """Unique identifier of the target user""" until_date: Optional[Union[datetime.datetime, datetime.timedelta, int]] = None - """Date when the user will be unbanned, unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only.""" + """Date when the user will be unbanned; Unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only.""" revoke_messages: Optional[bool] = None """Pass :code:`True` to delete all messages from the chat for the user that is being removed. If :code:`False`, the user will be able to see messages in the group that were sent before the user was removed. Always :code:`True` for supergroups and channels.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + user_id: int, + until_date: Optional[Union[datetime.datetime, datetime.timedelta, int]] = None, + revoke_messages: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + user_id=user_id, + until_date=until_date, + revoke_messages=revoke_messages, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/ban_chat_sender_chat.py b/aiogram/methods/ban_chat_sender_chat.py index e63f2ecc..cbe61943 100644 --- a/aiogram/methods/ban_chat_sender_chat.py +++ b/aiogram/methods/ban_chat_sender_chat.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -19,3 +19,20 @@ class BanChatSenderChat(TelegramMethod[bool]): """Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`)""" sender_chat_id: int """Unique identifier of the target sender chat""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + sender_chat_id: int, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, sender_chat_id=sender_chat_id, **__pydantic_kwargs) diff --git a/aiogram/methods/base.py b/aiogram/methods/base.py index 33045bf0..b2d35bec 100644 --- a/aiogram/methods/base.py +++ b/aiogram/methods/base.py @@ -1,10 +1,21 @@ from __future__ import annotations from abc import ABC, abstractmethod -from typing import TYPE_CHECKING, Any, Dict, Generator, Generic, Optional, TypeVar +from typing import ( + TYPE_CHECKING, + Any, + ClassVar, + Dict, + Generator, + Generic, + Optional, + TypeVar, +) -from pydantic import BaseConfig, BaseModel, Extra, root_validator -from pydantic.generics import GenericModel +from pydantic import BaseModel, ConfigDict +from pydantic.functional_validators import model_validator + +from aiogram.client.context_controller import BotContextController from ..types import InputFile, ResponseParameters from ..types.base import UNSET_TYPE @@ -16,16 +27,15 @@ TelegramType = TypeVar("TelegramType", bound=Any) class Request(BaseModel): + model_config = ConfigDict(arbitrary_types_allowed=True) + method: str data: Dict[str, Optional[Any]] files: Optional[Dict[str, InputFile]] - class Config(BaseConfig): - arbitrary_types_allowed = True - -class Response(GenericModel, Generic[TelegramType]): +class Response(BaseModel, Generic[TelegramType]): ok: bool result: Optional[TelegramType] = None description: Optional[str] = None @@ -33,16 +43,15 @@ class Response(GenericModel, Generic[TelegramType]): parameters: Optional[ResponseParameters] = None -class TelegramMethod(ABC, BaseModel, Generic[TelegramType]): - class Config(BaseConfig): - # use_enum_values = True - extra = Extra.allow - allow_population_by_field_name = True - arbitrary_types_allowed = True - orm_mode = True - smart_union = True # https://github.com/aiogram/aiogram/issues/901 +class TelegramMethod(BotContextController, BaseModel, Generic[TelegramType], ABC): + model_config = ConfigDict( + extra="allow", + populate_by_name=True, + arbitrary_types_allowed=True, + ) - @root_validator(pre=True) + @model_validator(mode="before") + @classmethod def remove_unset(cls, values: Dict[str, Any]) -> Dict[str, Any]: """ Remove UNSET before fields validation. @@ -52,35 +61,35 @@ class TelegramMethod(ABC, BaseModel, Generic[TelegramType]): but UNSET might be passing to a model initialization from `Bot.method_name`, so we must take care of it and remove it before fields validation. """ + if not isinstance(values, dict): + return values return {k: v for k, v in values.items() if not isinstance(v, UNSET_TYPE)} - @property - @abstractmethod - def __returning__(self) -> type: # pragma: no cover - pass + if TYPE_CHECKING: + __returning__: ClassVar[type] + __api_method__: ClassVar[str] + else: - @property - @abstractmethod - def __api_method__(self) -> str: - pass + @property + @abstractmethod + def __returning__(self) -> type: + pass - def dict(self, **kwargs: Any) -> Any: - # override dict of pydantic.BaseModel to overcome exporting request_timeout field - exclude = kwargs.pop("exclude", set()) - - return super().dict(exclude=exclude, **kwargs) - - def build_response(self, data: Dict[str, Any]) -> Response[TelegramType]: - # noinspection PyTypeChecker - return Response[self.__returning__](**data) # type: ignore + @property + @abstractmethod + def __api_method__(self) -> str: + pass async def emit(self, bot: Bot) -> TelegramType: return await bot(self) - as_ = emit - def __await__(self) -> Generator[Any, None, TelegramType]: - from aiogram.client.bot import Bot - - bot = Bot.get_current(no_error=False) + bot = self._bot + if not bot: + raise RuntimeError( + "This method is not mounted to a any bot instance, please call it explicilty " + "with bot instance `await bot(method)`\n" + "or mount method to a bot instance `method.as_(bot)` " + "and then call it `await method()`" + ) return self.emit(bot).__await__() diff --git a/aiogram/methods/close.py b/aiogram/methods/close.py index c8e9008d..7c33eca3 100644 --- a/aiogram/methods/close.py +++ b/aiogram/methods/close.py @@ -1,7 +1,5 @@ from __future__ import annotations -from typing import TYPE_CHECKING - from .base import TelegramMethod diff --git a/aiogram/methods/close_forum_topic.py b/aiogram/methods/close_forum_topic.py index 7ab5a479..110fbce7 100644 --- a/aiogram/methods/close_forum_topic.py +++ b/aiogram/methods/close_forum_topic.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -19,3 +19,22 @@ class CloseForumTopic(TelegramMethod[bool]): """Unique identifier for the target chat or username of the target supergroup (in the format :code:`@supergroupusername`)""" message_thread_id: int """Unique identifier for the target message thread of the forum topic""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + message_thread_id: int, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, message_thread_id=message_thread_id, **__pydantic_kwargs + ) diff --git a/aiogram/methods/close_general_forum_topic.py b/aiogram/methods/close_general_forum_topic.py index bc44bde5..3f1a6336 100644 --- a/aiogram/methods/close_general_forum_topic.py +++ b/aiogram/methods/close_general_forum_topic.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -17,3 +17,16 @@ class CloseGeneralForumTopic(TelegramMethod[bool]): chat_id: Union[int, str] """Unique identifier for the target chat or username of the target supergroup (in the format :code:`@supergroupusername`)""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, chat_id: Union[int, str], **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, **__pydantic_kwargs) diff --git a/aiogram/methods/copy_message.py b/aiogram/methods/copy_message.py index 5e34bb7d..b707580e 100644 --- a/aiogram/methods/copy_message.py +++ b/aiogram/methods/copy_message.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional, Union +from typing import TYPE_CHECKING, Any, List, Optional, Union from ..types import ( UNSET_PARSE_MODE, @@ -51,3 +51,46 @@ class CopyMessage(TelegramMethod[MessageId]): Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] ] = None """Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + from_chat_id: Union[int, str], + message_id: int, + message_thread_id: Optional[int] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + from_chat_id=from_chat_id, + message_id=message_id, + message_thread_id=message_thread_id, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/create_chat_invite_link.py b/aiogram/methods/create_chat_invite_link.py index 539115bb..ff0b3864 100644 --- a/aiogram/methods/create_chat_invite_link.py +++ b/aiogram/methods/create_chat_invite_link.py @@ -1,7 +1,7 @@ from __future__ import annotations import datetime -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from ..types import ChatInviteLink from .base import TelegramMethod @@ -27,3 +27,30 @@ class CreateChatInviteLink(TelegramMethod[ChatInviteLink]): """The maximum number of users that can be members of the chat simultaneously after joining the chat via this invite link; 1-99999""" creates_join_request: Optional[bool] = None """:code:`True`, if users joining the chat via the link need to be approved by chat administrators. If :code:`True`, *member_limit* can't be specified""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + name: Optional[str] = None, + expire_date: Optional[Union[datetime.datetime, datetime.timedelta, int]] = None, + member_limit: Optional[int] = None, + creates_join_request: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + name=name, + expire_date=expire_date, + member_limit=member_limit, + creates_join_request=creates_join_request, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/create_forum_topic.py b/aiogram/methods/create_forum_topic.py index f4b3f4da..8b0f6925 100644 --- a/aiogram/methods/create_forum_topic.py +++ b/aiogram/methods/create_forum_topic.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from ..types import ForumTopic from .base import TelegramMethod @@ -24,3 +24,28 @@ class CreateForumTopic(TelegramMethod[ForumTopic]): """Color of the topic icon in RGB format. Currently, must be one of 7322096 (0x6FB9F0), 16766590 (0xFFD67E), 13338331 (0xCB86DB), 9367192 (0x8EEE98), 16749490 (0xFF93B2), or 16478047 (0xFB6F5F)""" icon_custom_emoji_id: Optional[str] = None """Unique identifier of the custom emoji shown as the topic icon. Use :class:`aiogram.methods.get_forum_topic_icon_stickers.GetForumTopicIconStickers` to get all allowed custom emoji identifiers.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + name: str, + icon_color: Optional[int] = None, + icon_custom_emoji_id: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + name=name, + icon_color=icon_color, + icon_custom_emoji_id=icon_custom_emoji_id, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/create_invoice_link.py b/aiogram/methods/create_invoice_link.py index de6497c1..361ea31a 100644 --- a/aiogram/methods/create_invoice_link.py +++ b/aiogram/methods/create_invoice_link.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Any, List, Optional from ..types import LabeledPrice from .base import TelegramMethod @@ -56,3 +56,60 @@ class CreateInvoiceLink(TelegramMethod[str]): """Pass :code:`True` if the user's email address should be sent to the provider""" is_flexible: Optional[bool] = None """Pass :code:`True` if the final price depends on the shipping method""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + title: str, + description: str, + payload: str, + provider_token: str, + currency: str, + prices: List[LabeledPrice], + max_tip_amount: Optional[int] = None, + suggested_tip_amounts: Optional[List[int]] = None, + provider_data: Optional[str] = None, + photo_url: Optional[str] = None, + photo_size: Optional[int] = None, + photo_width: Optional[int] = None, + photo_height: Optional[int] = None, + need_name: Optional[bool] = None, + need_phone_number: Optional[bool] = None, + need_email: Optional[bool] = None, + need_shipping_address: Optional[bool] = None, + send_phone_number_to_provider: Optional[bool] = None, + send_email_to_provider: Optional[bool] = None, + is_flexible: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + title=title, + description=description, + payload=payload, + provider_token=provider_token, + currency=currency, + prices=prices, + max_tip_amount=max_tip_amount, + suggested_tip_amounts=suggested_tip_amounts, + provider_data=provider_data, + photo_url=photo_url, + photo_size=photo_size, + photo_width=photo_width, + photo_height=photo_height, + need_name=need_name, + need_phone_number=need_phone_number, + need_email=need_email, + need_shipping_address=need_shipping_address, + send_phone_number_to_provider=send_phone_number_to_provider, + send_email_to_provider=send_email_to_provider, + is_flexible=is_flexible, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/create_new_sticker_set.py b/aiogram/methods/create_new_sticker_set.py index 6406df81..92388bd5 100644 --- a/aiogram/methods/create_new_sticker_set.py +++ b/aiogram/methods/create_new_sticker_set.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Any, List, Optional from ..types import InputSticker from .base import TelegramMethod @@ -30,3 +30,34 @@ class CreateNewStickerSet(TelegramMethod[bool]): """Type of stickers in the set, pass 'regular', 'mask', or 'custom_emoji'. By default, a regular sticker set is created.""" needs_repainting: Optional[bool] = None """Pass :code:`True` if stickers in the sticker set must be repainted to the color of text when used in messages, the accent color if used as emoji status, white on chat photos, or another appropriate color based on context; for custom emoji sticker sets only""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + user_id: int, + name: str, + title: str, + stickers: List[InputSticker], + sticker_format: str, + sticker_type: Optional[str] = None, + needs_repainting: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + user_id=user_id, + name=name, + title=title, + stickers=stickers, + sticker_format=sticker_format, + sticker_type=sticker_type, + needs_repainting=needs_repainting, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/decline_chat_join_request.py b/aiogram/methods/decline_chat_join_request.py index 7861b7bb..b0fa2c3c 100644 --- a/aiogram/methods/decline_chat_join_request.py +++ b/aiogram/methods/decline_chat_join_request.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -19,3 +19,16 @@ class DeclineChatJoinRequest(TelegramMethod[bool]): """Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`)""" user_id: int """Unique identifier of the target user""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, chat_id: Union[int, str], user_id: int, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, user_id=user_id, **__pydantic_kwargs) diff --git a/aiogram/methods/delete_chat_photo.py b/aiogram/methods/delete_chat_photo.py index 11a3836e..503ace2c 100644 --- a/aiogram/methods/delete_chat_photo.py +++ b/aiogram/methods/delete_chat_photo.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -17,3 +17,16 @@ class DeleteChatPhoto(TelegramMethod[bool]): chat_id: Union[int, str] """Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`)""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, chat_id: Union[int, str], **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, **__pydantic_kwargs) diff --git a/aiogram/methods/delete_chat_sticker_set.py b/aiogram/methods/delete_chat_sticker_set.py index 681293df..50d705f0 100644 --- a/aiogram/methods/delete_chat_sticker_set.py +++ b/aiogram/methods/delete_chat_sticker_set.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -17,3 +17,16 @@ class DeleteChatStickerSet(TelegramMethod[bool]): chat_id: Union[int, str] """Unique identifier for the target chat or username of the target supergroup (in the format :code:`@supergroupusername`)""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, chat_id: Union[int, str], **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, **__pydantic_kwargs) diff --git a/aiogram/methods/delete_forum_topic.py b/aiogram/methods/delete_forum_topic.py index 4733c67d..7d238562 100644 --- a/aiogram/methods/delete_forum_topic.py +++ b/aiogram/methods/delete_forum_topic.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -19,3 +19,22 @@ class DeleteForumTopic(TelegramMethod[bool]): """Unique identifier for the target chat or username of the target supergroup (in the format :code:`@supergroupusername`)""" message_thread_id: int """Unique identifier for the target message thread of the forum topic""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + message_thread_id: int, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, message_thread_id=message_thread_id, **__pydantic_kwargs + ) diff --git a/aiogram/methods/delete_message.py b/aiogram/methods/delete_message.py index 468411d5..59aee049 100644 --- a/aiogram/methods/delete_message.py +++ b/aiogram/methods/delete_message.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -37,3 +37,20 @@ class DeleteMessage(TelegramMethod[bool]): """Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`)""" message_id: int """Identifier of the message to delete""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + message_id: int, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, message_id=message_id, **__pydantic_kwargs) diff --git a/aiogram/methods/delete_my_commands.py b/aiogram/methods/delete_my_commands.py index d73814db..e35ef67c 100644 --- a/aiogram/methods/delete_my_commands.py +++ b/aiogram/methods/delete_my_commands.py @@ -1,8 +1,16 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional, Union -from ..types import BotCommandScope +from ..types import ( + BotCommandScopeAllChatAdministrators, + BotCommandScopeAllGroupChats, + BotCommandScopeAllPrivateChats, + BotCommandScopeChat, + BotCommandScopeChatAdministrators, + BotCommandScopeChatMember, + BotCommandScopeDefault, +) from .base import TelegramMethod @@ -16,7 +24,44 @@ class DeleteMyCommands(TelegramMethod[bool]): __returning__ = bool __api_method__ = "deleteMyCommands" - scope: Optional[BotCommandScope] = None + scope: Optional[ + Union[ + BotCommandScopeDefault, + BotCommandScopeAllPrivateChats, + BotCommandScopeAllGroupChats, + BotCommandScopeAllChatAdministrators, + BotCommandScopeChat, + BotCommandScopeChatAdministrators, + BotCommandScopeChatMember, + ] + ] = None """A JSON-serialized object, describing scope of users for which the commands are relevant. Defaults to :class:`aiogram.types.bot_command_scope_default.BotCommandScopeDefault`.""" language_code: Optional[str] = None """A two-letter ISO 639-1 language code. If empty, commands will be applied to all users from the given scope, for whose language there are no dedicated commands""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + scope: Optional[ + Union[ + BotCommandScopeDefault, + BotCommandScopeAllPrivateChats, + BotCommandScopeAllGroupChats, + BotCommandScopeAllChatAdministrators, + BotCommandScopeChat, + BotCommandScopeChatAdministrators, + BotCommandScopeChatMember, + ] + ] = None, + language_code: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(scope=scope, language_code=language_code, **__pydantic_kwargs) diff --git a/aiogram/methods/delete_sticker_from_set.py b/aiogram/methods/delete_sticker_from_set.py index 96219c15..6aae72b7 100644 --- a/aiogram/methods/delete_sticker_from_set.py +++ b/aiogram/methods/delete_sticker_from_set.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any from .base import TelegramMethod @@ -17,3 +17,14 @@ class DeleteStickerFromSet(TelegramMethod[bool]): sticker: str """File identifier of the sticker""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__(__pydantic__self__, *, sticker: str, **__pydantic_kwargs: Any) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(sticker=sticker, **__pydantic_kwargs) diff --git a/aiogram/methods/delete_sticker_set.py b/aiogram/methods/delete_sticker_set.py index d5a0f67e..519c5db1 100644 --- a/aiogram/methods/delete_sticker_set.py +++ b/aiogram/methods/delete_sticker_set.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any from .base import TelegramMethod @@ -17,3 +17,14 @@ class DeleteStickerSet(TelegramMethod[bool]): name: str """Sticker set name""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__(__pydantic__self__, *, name: str, **__pydantic_kwargs: Any) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(name=name, **__pydantic_kwargs) diff --git a/aiogram/methods/delete_webhook.py b/aiogram/methods/delete_webhook.py index b9d6cd7b..05c39f4e 100644 --- a/aiogram/methods/delete_webhook.py +++ b/aiogram/methods/delete_webhook.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramMethod @@ -17,3 +17,19 @@ class DeleteWebhook(TelegramMethod[bool]): drop_pending_updates: Optional[bool] = None """Pass :code:`True` to drop all pending updates""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + drop_pending_updates: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(drop_pending_updates=drop_pending_updates, **__pydantic_kwargs) diff --git a/aiogram/methods/edit_chat_invite_link.py b/aiogram/methods/edit_chat_invite_link.py index 26f4ccc3..8ec86cab 100644 --- a/aiogram/methods/edit_chat_invite_link.py +++ b/aiogram/methods/edit_chat_invite_link.py @@ -1,7 +1,7 @@ from __future__ import annotations import datetime -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from ..types import ChatInviteLink from .base import TelegramMethod @@ -29,3 +29,32 @@ class EditChatInviteLink(TelegramMethod[ChatInviteLink]): """The maximum number of users that can be members of the chat simultaneously after joining the chat via this invite link; 1-99999""" creates_join_request: Optional[bool] = None """:code:`True`, if users joining the chat via the link need to be approved by chat administrators. If :code:`True`, *member_limit* can't be specified""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + invite_link: str, + name: Optional[str] = None, + expire_date: Optional[Union[datetime.datetime, datetime.timedelta, int]] = None, + member_limit: Optional[int] = None, + creates_join_request: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + invite_link=invite_link, + name=name, + expire_date=expire_date, + member_limit=member_limit, + creates_join_request=creates_join_request, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/edit_forum_topic.py b/aiogram/methods/edit_forum_topic.py index f87d0cea..f0afb354 100644 --- a/aiogram/methods/edit_forum_topic.py +++ b/aiogram/methods/edit_forum_topic.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from .base import TelegramMethod @@ -23,3 +23,28 @@ class EditForumTopic(TelegramMethod[bool]): """New topic name, 0-128 characters. If not specified or empty, the current name of the topic will be kept""" icon_custom_emoji_id: Optional[str] = None """New unique identifier of the custom emoji shown as the topic icon. Use :class:`aiogram.methods.get_forum_topic_icon_stickers.GetForumTopicIconStickers` to get all allowed custom emoji identifiers. Pass an empty string to remove the icon. If not specified, the current icon will be kept""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + message_thread_id: int, + name: Optional[str] = None, + icon_custom_emoji_id: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + message_thread_id=message_thread_id, + name=name, + icon_custom_emoji_id=icon_custom_emoji_id, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/edit_general_forum_topic.py b/aiogram/methods/edit_general_forum_topic.py index f35c2048..fe5acadf 100644 --- a/aiogram/methods/edit_general_forum_topic.py +++ b/aiogram/methods/edit_general_forum_topic.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -19,3 +19,16 @@ class EditGeneralForumTopic(TelegramMethod[bool]): """Unique identifier for the target chat or username of the target supergroup (in the format :code:`@supergroupusername`)""" name: str """New topic name, 1-128 characters""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, chat_id: Union[int, str], name: str, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, name=name, **__pydantic_kwargs) diff --git a/aiogram/methods/edit_message_caption.py b/aiogram/methods/edit_message_caption.py index 66cdeac9..4c15e6d8 100644 --- a/aiogram/methods/edit_message_caption.py +++ b/aiogram/methods/edit_message_caption.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional, Union +from typing import TYPE_CHECKING, Any, List, Optional, Union from ..types import UNSET_PARSE_MODE, InlineKeyboardMarkup, Message, MessageEntity from .base import TelegramMethod @@ -30,3 +30,34 @@ class EditMessageCaption(TelegramMethod[Union[Message, bool]]): """A JSON-serialized list of special entities that appear in the caption, which can be specified instead of *parse_mode*""" reply_markup: Optional[InlineKeyboardMarkup] = None """A JSON-serialized object for an `inline keyboard `_.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + 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[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + message_id=message_id, + inline_message_id=inline_message_id, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/edit_message_live_location.py b/aiogram/methods/edit_message_live_location.py index e35c3225..44406203 100644 --- a/aiogram/methods/edit_message_live_location.py +++ b/aiogram/methods/edit_message_live_location.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from ..types import InlineKeyboardMarkup, Message from .base import TelegramMethod @@ -34,3 +34,38 @@ class EditMessageLiveLocation(TelegramMethod[Union[Message, bool]]): """The maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified.""" reply_markup: Optional[InlineKeyboardMarkup] = None """A JSON-serialized object for a new `inline keyboard `_.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + latitude: float, + longitude: float, + chat_id: Optional[Union[int, str]] = None, + message_id: Optional[int] = None, + inline_message_id: Optional[str] = None, + horizontal_accuracy: Optional[float] = None, + heading: Optional[int] = None, + proximity_alert_radius: Optional[int] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + latitude=latitude, + longitude=longitude, + chat_id=chat_id, + message_id=message_id, + inline_message_id=inline_message_id, + horizontal_accuracy=horizontal_accuracy, + heading=heading, + proximity_alert_radius=proximity_alert_radius, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/edit_message_media.py b/aiogram/methods/edit_message_media.py index f986a841..a354de03 100644 --- a/aiogram/methods/edit_message_media.py +++ b/aiogram/methods/edit_message_media.py @@ -1,8 +1,16 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union -from ..types import InlineKeyboardMarkup, InputMedia, Message +from ..types import ( + InlineKeyboardMarkup, + InputMediaAnimation, + InputMediaAudio, + InputMediaDocument, + InputMediaPhoto, + InputMediaVideo, + Message, +) from .base import TelegramMethod @@ -16,7 +24,9 @@ class EditMessageMedia(TelegramMethod[Union[Message, bool]]): __returning__ = Union[Message, bool] __api_method__ = "editMessageMedia" - media: InputMedia + media: Union[ + InputMediaAnimation, InputMediaDocument, InputMediaAudio, InputMediaPhoto, InputMediaVideo + ] """A JSON-serialized object for a new media content of the message""" chat_id: Optional[Union[int, str]] = None """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`)""" @@ -26,3 +36,36 @@ class EditMessageMedia(TelegramMethod[Union[Message, bool]]): """Required if *chat_id* and *message_id* are not specified. Identifier of the inline message""" reply_markup: Optional[InlineKeyboardMarkup] = None """A JSON-serialized object for a new `inline keyboard `_.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + media: Union[ + InputMediaAnimation, + InputMediaDocument, + InputMediaAudio, + InputMediaPhoto, + InputMediaVideo, + ], + chat_id: Optional[Union[int, str]] = None, + message_id: Optional[int] = None, + inline_message_id: Optional[str] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + media=media, + chat_id=chat_id, + message_id=message_id, + inline_message_id=inline_message_id, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/edit_message_reply_markup.py b/aiogram/methods/edit_message_reply_markup.py index a828c9d8..bc957a14 100644 --- a/aiogram/methods/edit_message_reply_markup.py +++ b/aiogram/methods/edit_message_reply_markup.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from ..types import InlineKeyboardMarkup, Message from .base import TelegramMethod @@ -24,3 +24,28 @@ class EditMessageReplyMarkup(TelegramMethod[Union[Message, bool]]): """Required if *chat_id* and *message_id* are not specified. Identifier of the inline message""" reply_markup: Optional[InlineKeyboardMarkup] = None """A JSON-serialized object for an `inline keyboard `_.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Optional[Union[int, str]] = None, + message_id: Optional[int] = None, + inline_message_id: Optional[str] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + message_id=message_id, + inline_message_id=inline_message_id, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/edit_message_text.py b/aiogram/methods/edit_message_text.py index 79887c97..c795e0f2 100644 --- a/aiogram/methods/edit_message_text.py +++ b/aiogram/methods/edit_message_text.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional, Union +from typing import TYPE_CHECKING, Any, List, Optional, Union from ..types import UNSET_PARSE_MODE, InlineKeyboardMarkup, Message, MessageEntity from ..types.base import UNSET_DISABLE_WEB_PAGE_PREVIEW @@ -33,3 +33,36 @@ class EditMessageText(TelegramMethod[Union[Message, bool]]): """Disables link previews for links in this message""" reply_markup: Optional[InlineKeyboardMarkup] = None """A JSON-serialized object for an `inline keyboard `_.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + text: str, + chat_id: Optional[Union[int, str]] = None, + message_id: Optional[int] = None, + inline_message_id: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + entities: Optional[List[MessageEntity]] = None, + disable_web_page_preview: Optional[bool] = UNSET_DISABLE_WEB_PAGE_PREVIEW, + reply_markup: Optional[InlineKeyboardMarkup] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + text=text, + chat_id=chat_id, + message_id=message_id, + inline_message_id=inline_message_id, + parse_mode=parse_mode, + entities=entities, + disable_web_page_preview=disable_web_page_preview, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/export_chat_invite_link.py b/aiogram/methods/export_chat_invite_link.py index ba4436ed..271e35d1 100644 --- a/aiogram/methods/export_chat_invite_link.py +++ b/aiogram/methods/export_chat_invite_link.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -19,3 +19,16 @@ class ExportChatInviteLink(TelegramMethod[str]): chat_id: Union[int, str] """Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`)""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, chat_id: Union[int, str], **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, **__pydantic_kwargs) diff --git a/aiogram/methods/forward_message.py b/aiogram/methods/forward_message.py index 45c084a0..a0eeb79f 100644 --- a/aiogram/methods/forward_message.py +++ b/aiogram/methods/forward_message.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from ..types import Message from ..types.base import UNSET_PROTECT_CONTENT @@ -29,3 +29,32 @@ class ForwardMessage(TelegramMethod[Message]): """Sends the message `silently `_. Users will receive a notification with no sound.""" protect_content: Optional[bool] = UNSET_PROTECT_CONTENT """Protects the contents of the forwarded message from forwarding and saving""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + from_chat_id: Union[int, str], + message_id: int, + message_thread_id: Optional[int] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + from_chat_id=from_chat_id, + message_id=message_id, + message_thread_id=message_thread_id, + disable_notification=disable_notification, + protect_content=protect_content, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/get_chat.py b/aiogram/methods/get_chat.py index a565529a..d835aa55 100644 --- a/aiogram/methods/get_chat.py +++ b/aiogram/methods/get_chat.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from ..types import Chat from .base import TelegramMethod @@ -18,3 +18,16 @@ class GetChat(TelegramMethod[Chat]): chat_id: Union[int, str] """Unique identifier for the target chat or username of the target supergroup or channel (in the format :code:`@channelusername`)""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, chat_id: Union[int, str], **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, **__pydantic_kwargs) diff --git a/aiogram/methods/get_chat_administrators.py b/aiogram/methods/get_chat_administrators.py index 3e0cac3c..99e403e2 100644 --- a/aiogram/methods/get_chat_administrators.py +++ b/aiogram/methods/get_chat_administrators.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Union +from typing import TYPE_CHECKING, Any, List, Union from ..types import ( ChatMemberAdministrator, @@ -47,3 +47,16 @@ class GetChatAdministrators( chat_id: Union[int, str] """Unique identifier for the target chat or username of the target supergroup or channel (in the format :code:`@channelusername`)""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, chat_id: Union[int, str], **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, **__pydantic_kwargs) diff --git a/aiogram/methods/get_chat_member.py b/aiogram/methods/get_chat_member.py index ab308024..495f6287 100644 --- a/aiogram/methods/get_chat_member.py +++ b/aiogram/methods/get_chat_member.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from ..types import ( ChatMemberAdministrator, @@ -45,3 +45,16 @@ class GetChatMember( """Unique identifier for the target chat or username of the target supergroup or channel (in the format :code:`@channelusername`)""" user_id: int """Unique identifier of the target user""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, chat_id: Union[int, str], user_id: int, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, user_id=user_id, **__pydantic_kwargs) diff --git a/aiogram/methods/get_chat_member_count.py b/aiogram/methods/get_chat_member_count.py index c1b08e5b..fc33c23f 100644 --- a/aiogram/methods/get_chat_member_count.py +++ b/aiogram/methods/get_chat_member_count.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -17,3 +17,16 @@ class GetChatMemberCount(TelegramMethod[int]): chat_id: Union[int, str] """Unique identifier for the target chat or username of the target supergroup or channel (in the format :code:`@channelusername`)""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, chat_id: Union[int, str], **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, **__pydantic_kwargs) diff --git a/aiogram/methods/get_chat_menu_button.py b/aiogram/methods/get_chat_menu_button.py index 6679d5df..ee1248d0 100644 --- a/aiogram/methods/get_chat_menu_button.py +++ b/aiogram/methods/get_chat_menu_button.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from ..types import MenuButtonCommands, MenuButtonDefault, MenuButtonWebApp from .base import TelegramMethod @@ -20,3 +20,16 @@ class GetChatMenuButton( chat_id: Optional[int] = None """Unique identifier for the target private chat. If not specified, default bot's menu button will be returned""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, chat_id: Optional[int] = None, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, **__pydantic_kwargs) diff --git a/aiogram/methods/get_custom_emoji_stickers.py b/aiogram/methods/get_custom_emoji_stickers.py index 3522b539..5aeff72f 100644 --- a/aiogram/methods/get_custom_emoji_stickers.py +++ b/aiogram/methods/get_custom_emoji_stickers.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List +from typing import TYPE_CHECKING, Any, List from ..types import Sticker from .base import TelegramMethod @@ -18,3 +18,16 @@ class GetCustomEmojiStickers(TelegramMethod[List[Sticker]]): custom_emoji_ids: List[str] """List of custom emoji identifiers. At most 200 custom emoji identifiers can be specified.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, custom_emoji_ids: List[str], **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(custom_emoji_ids=custom_emoji_ids, **__pydantic_kwargs) diff --git a/aiogram/methods/get_file.py b/aiogram/methods/get_file.py index b84ff940..c96ff311 100644 --- a/aiogram/methods/get_file.py +++ b/aiogram/methods/get_file.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any from ..types import File from .base import TelegramMethod @@ -19,3 +19,14 @@ class GetFile(TelegramMethod[File]): file_id: str """File identifier to get information about""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__(__pydantic__self__, *, file_id: str, **__pydantic_kwargs: Any) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(file_id=file_id, **__pydantic_kwargs) diff --git a/aiogram/methods/get_forum_topic_icon_stickers.py b/aiogram/methods/get_forum_topic_icon_stickers.py index 31965661..5c233215 100644 --- a/aiogram/methods/get_forum_topic_icon_stickers.py +++ b/aiogram/methods/get_forum_topic_icon_stickers.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List +from typing import List from ..types import Sticker from .base import TelegramMethod diff --git a/aiogram/methods/get_game_high_scores.py b/aiogram/methods/get_game_high_scores.py index aff1c56a..cac9d61a 100644 --- a/aiogram/methods/get_game_high_scores.py +++ b/aiogram/methods/get_game_high_scores.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Any, List, Optional from ..types import GameHighScore from .base import TelegramMethod @@ -26,3 +26,28 @@ class GetGameHighScores(TelegramMethod[List[GameHighScore]]): """Required if *inline_message_id* is not specified. Identifier of the sent message""" inline_message_id: Optional[str] = None """Required if *chat_id* and *message_id* are not specified. Identifier of the inline message""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + user_id: int, + chat_id: Optional[int] = None, + message_id: Optional[int] = None, + inline_message_id: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + user_id=user_id, + chat_id=chat_id, + message_id=message_id, + inline_message_id=inline_message_id, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/get_me.py b/aiogram/methods/get_me.py index 1a7f1fe1..c2cc52f9 100644 --- a/aiogram/methods/get_me.py +++ b/aiogram/methods/get_me.py @@ -1,7 +1,5 @@ from __future__ import annotations -from typing import TYPE_CHECKING - from ..types import User from .base import TelegramMethod diff --git a/aiogram/methods/get_my_commands.py b/aiogram/methods/get_my_commands.py index d1e5c9c3..b3386b66 100644 --- a/aiogram/methods/get_my_commands.py +++ b/aiogram/methods/get_my_commands.py @@ -1,8 +1,17 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Any, List, Optional, Union -from ..types import BotCommand, BotCommandScope +from ..types import ( + BotCommand, + BotCommandScopeAllChatAdministrators, + BotCommandScopeAllGroupChats, + BotCommandScopeAllPrivateChats, + BotCommandScopeChat, + BotCommandScopeChatAdministrators, + BotCommandScopeChatMember, + BotCommandScopeDefault, +) from .base import TelegramMethod @@ -16,7 +25,44 @@ class GetMyCommands(TelegramMethod[List[BotCommand]]): __returning__ = List[BotCommand] __api_method__ = "getMyCommands" - scope: Optional[BotCommandScope] = None + scope: Optional[ + Union[ + BotCommandScopeDefault, + BotCommandScopeAllPrivateChats, + BotCommandScopeAllGroupChats, + BotCommandScopeAllChatAdministrators, + BotCommandScopeChat, + BotCommandScopeChatAdministrators, + BotCommandScopeChatMember, + ] + ] = None """A JSON-serialized object, describing scope of users. Defaults to :class:`aiogram.types.bot_command_scope_default.BotCommandScopeDefault`.""" language_code: Optional[str] = None """A two-letter ISO 639-1 language code or an empty string""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + scope: Optional[ + Union[ + BotCommandScopeDefault, + BotCommandScopeAllPrivateChats, + BotCommandScopeAllGroupChats, + BotCommandScopeAllChatAdministrators, + BotCommandScopeChat, + BotCommandScopeChatAdministrators, + BotCommandScopeChatMember, + ] + ] = None, + language_code: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(scope=scope, language_code=language_code, **__pydantic_kwargs) diff --git a/aiogram/methods/get_my_default_administrator_rights.py b/aiogram/methods/get_my_default_administrator_rights.py index d20e7a15..4f9ad9a6 100644 --- a/aiogram/methods/get_my_default_administrator_rights.py +++ b/aiogram/methods/get_my_default_administrator_rights.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from ..types import ChatAdministratorRights from .base import TelegramMethod @@ -18,3 +18,16 @@ class GetMyDefaultAdministratorRights(TelegramMethod[ChatAdministratorRights]): for_channels: Optional[bool] = None """Pass :code:`True` to get default administrator rights of the bot in channels. Otherwise, default administrator rights of the bot for groups and supergroups will be returned.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, for_channels: Optional[bool] = None, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(for_channels=for_channels, **__pydantic_kwargs) diff --git a/aiogram/methods/get_my_description.py b/aiogram/methods/get_my_description.py index 3b0534ff..f967faf6 100644 --- a/aiogram/methods/get_my_description.py +++ b/aiogram/methods/get_my_description.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from ..types import BotDescription from .base import TelegramMethod @@ -18,3 +18,16 @@ class GetMyDescription(TelegramMethod[BotDescription]): language_code: Optional[str] = None """A two-letter ISO 639-1 language code or an empty string""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, language_code: Optional[str] = None, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(language_code=language_code, **__pydantic_kwargs) diff --git a/aiogram/methods/get_my_name.py b/aiogram/methods/get_my_name.py index 202b21ff..909ac3f6 100644 --- a/aiogram/methods/get_my_name.py +++ b/aiogram/methods/get_my_name.py @@ -1,4 +1,4 @@ -from typing import Optional +from typing import TYPE_CHECKING, Any, Optional from ..types import BotName from .base import TelegramMethod @@ -16,3 +16,16 @@ class GetMyName(TelegramMethod[BotName]): language_code: Optional[str] = None """A two-letter ISO 639-1 language code or an empty string""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, language_code: Optional[str] = None, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(language_code=language_code, **__pydantic_kwargs) diff --git a/aiogram/methods/get_my_short_description.py b/aiogram/methods/get_my_short_description.py index 81731142..a9a56669 100644 --- a/aiogram/methods/get_my_short_description.py +++ b/aiogram/methods/get_my_short_description.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from ..types import BotShortDescription from .base import TelegramMethod @@ -18,3 +18,16 @@ class GetMyShortDescription(TelegramMethod[BotShortDescription]): language_code: Optional[str] = None """A two-letter ISO 639-1 language code or an empty string""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, language_code: Optional[str] = None, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(language_code=language_code, **__pydantic_kwargs) diff --git a/aiogram/methods/get_sticker_set.py b/aiogram/methods/get_sticker_set.py index 87041172..2700e172 100644 --- a/aiogram/methods/get_sticker_set.py +++ b/aiogram/methods/get_sticker_set.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any from ..types import StickerSet from .base import TelegramMethod @@ -18,3 +18,14 @@ class GetStickerSet(TelegramMethod[StickerSet]): name: str """Name of the sticker set""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__(__pydantic__self__, *, name: str, **__pydantic_kwargs: Any) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(name=name, **__pydantic_kwargs) diff --git a/aiogram/methods/get_updates.py b/aiogram/methods/get_updates.py index b22c9755..dd9f855e 100644 --- a/aiogram/methods/get_updates.py +++ b/aiogram/methods/get_updates.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Any, List, Optional from ..types import Update from .base import TelegramMethod @@ -29,4 +29,29 @@ class GetUpdates(TelegramMethod[List[Update]]): timeout: Optional[int] = None """Timeout in seconds for long polling. Defaults to 0, i.e. usual short polling. Should be positive, short polling should be used for testing purposes only.""" allowed_updates: Optional[List[str]] = None - """A JSON-serialized list of the update types you want your bot to receive. For example, specify ['message', 'edited_channel_post', 'callback_query'] to only receive updates of these types. See :class:`aiogram.types.update.Update` for a complete list of available update types. Specify an empty list to receive all update types except *chat_member* (default). If not specified, the previous setting will be used.""" + """A JSON-serialized list of the update types you want your bot to receive. For example, specify :code:`["message", "edited_channel_post", "callback_query"]` to only receive updates of these types. See :class:`aiogram.types.update.Update` for a complete list of available update types. Specify an empty list to receive all update types except *chat_member* (default). If not specified, the previous setting will be used.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + offset: Optional[int] = None, + limit: Optional[int] = None, + timeout: Optional[int] = None, + allowed_updates: Optional[List[str]] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + offset=offset, + limit=limit, + timeout=timeout, + allowed_updates=allowed_updates, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/get_user_profile_photos.py b/aiogram/methods/get_user_profile_photos.py index 47abc196..488885e1 100644 --- a/aiogram/methods/get_user_profile_photos.py +++ b/aiogram/methods/get_user_profile_photos.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from ..types import UserProfilePhotos from .base import TelegramMethod @@ -22,3 +22,21 @@ class GetUserProfilePhotos(TelegramMethod[UserProfilePhotos]): """Sequential number of the first photo to be returned. By default, all photos are returned.""" limit: Optional[int] = None """Limits the number of photos to be retrieved. Values between 1-100 are accepted. Defaults to 100.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + user_id: int, + offset: Optional[int] = None, + limit: Optional[int] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(user_id=user_id, offset=offset, limit=limit, **__pydantic_kwargs) diff --git a/aiogram/methods/get_webhook_info.py b/aiogram/methods/get_webhook_info.py index 5e4e194c..c9f0e46f 100644 --- a/aiogram/methods/get_webhook_info.py +++ b/aiogram/methods/get_webhook_info.py @@ -1,7 +1,5 @@ from __future__ import annotations -from typing import TYPE_CHECKING - from ..types import WebhookInfo from .base import TelegramMethod diff --git a/aiogram/methods/hide_general_forum_topic.py b/aiogram/methods/hide_general_forum_topic.py index 2587cf9e..a3b6ee3f 100644 --- a/aiogram/methods/hide_general_forum_topic.py +++ b/aiogram/methods/hide_general_forum_topic.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -17,3 +17,16 @@ class HideGeneralForumTopic(TelegramMethod[bool]): chat_id: Union[int, str] """Unique identifier for the target chat or username of the target supergroup (in the format :code:`@supergroupusername`)""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, chat_id: Union[int, str], **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, **__pydantic_kwargs) diff --git a/aiogram/methods/leave_chat.py b/aiogram/methods/leave_chat.py index 5b2e15cf..f9d43128 100644 --- a/aiogram/methods/leave_chat.py +++ b/aiogram/methods/leave_chat.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -17,3 +17,16 @@ class LeaveChat(TelegramMethod[bool]): chat_id: Union[int, str] """Unique identifier for the target chat or username of the target supergroup or channel (in the format :code:`@channelusername`)""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, chat_id: Union[int, str], **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, **__pydantic_kwargs) diff --git a/aiogram/methods/log_out.py b/aiogram/methods/log_out.py index 3f3ea3de..2a626535 100644 --- a/aiogram/methods/log_out.py +++ b/aiogram/methods/log_out.py @@ -1,7 +1,5 @@ from __future__ import annotations -from typing import TYPE_CHECKING - from .base import TelegramMethod diff --git a/aiogram/methods/pin_chat_message.py b/aiogram/methods/pin_chat_message.py index d1641eea..fe99cc25 100644 --- a/aiogram/methods/pin_chat_message.py +++ b/aiogram/methods/pin_chat_message.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from .base import TelegramMethod @@ -21,3 +21,26 @@ class PinChatMessage(TelegramMethod[bool]): """Identifier of a message to pin""" disable_notification: Optional[bool] = None """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.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + message_id: int, + disable_notification: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + message_id=message_id, + disable_notification=disable_notification, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/promote_chat_member.py b/aiogram/methods/promote_chat_member.py index d8f6096f..8be42d30 100644 --- a/aiogram/methods/promote_chat_member.py +++ b/aiogram/methods/promote_chat_member.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from .base import TelegramMethod @@ -22,24 +22,81 @@ class PromoteChatMember(TelegramMethod[bool]): is_anonymous: Optional[bool] = None """Pass :code:`True` if the administrator's presence in the chat is hidden""" can_manage_chat: Optional[bool] = None - """Pass :code:`True` if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege""" - can_post_messages: Optional[bool] = None - """Pass :code:`True` if the administrator can create channel posts, channels only""" - can_edit_messages: Optional[bool] = None - """Pass :code:`True` if the administrator can edit messages of other users and can pin messages, channels only""" + """Pass :code:`True` if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege""" can_delete_messages: Optional[bool] = None """Pass :code:`True` if the administrator can delete messages of other users""" can_manage_video_chats: Optional[bool] = None """Pass :code:`True` if the administrator can manage video chats""" can_restrict_members: Optional[bool] = None - """Pass :code:`True` if the administrator can restrict, ban or unban chat members""" + """Pass :code:`True` if the administrator can restrict, ban or unban chat members, or access supergroup statistics""" can_promote_members: Optional[bool] = None """Pass :code:`True` if the administrator can add new administrators with a subset of their own privileges or demote administrators that they have promoted, directly or indirectly (promoted by administrators that were appointed by him)""" can_change_info: Optional[bool] = None """Pass :code:`True` if the administrator can change chat title, photo and other settings""" can_invite_users: Optional[bool] = None """Pass :code:`True` if the administrator can invite new users to the chat""" + can_post_messages: Optional[bool] = None + """Pass :code:`True` if the administrator can post messages in the channel, or access channel statistics; channels only""" + can_edit_messages: Optional[bool] = None + """Pass :code:`True` if the administrator can edit messages of other users and can pin messages; channels only""" can_pin_messages: Optional[bool] = None """Pass :code:`True` if the administrator can pin messages, supergroups only""" + can_post_stories: Optional[bool] = None + """Pass :code:`True` if the administrator can post stories in the channel; channels only""" + can_edit_stories: Optional[bool] = None + """Pass :code:`True` if the administrator can edit stories posted by other users; channels only""" + can_delete_stories: Optional[bool] = None + """Pass :code:`True` if the administrator can delete stories posted by other users; channels only""" can_manage_topics: Optional[bool] = None """Pass :code:`True` if the user is allowed to create, rename, close, and reopen forum topics, supergroups only""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + user_id: int, + is_anonymous: Optional[bool] = None, + can_manage_chat: Optional[bool] = None, + can_delete_messages: Optional[bool] = None, + can_manage_video_chats: Optional[bool] = None, + can_restrict_members: Optional[bool] = None, + can_promote_members: Optional[bool] = None, + can_change_info: Optional[bool] = None, + can_invite_users: Optional[bool] = None, + can_post_messages: Optional[bool] = None, + can_edit_messages: Optional[bool] = None, + can_pin_messages: Optional[bool] = None, + can_post_stories: Optional[bool] = None, + can_edit_stories: Optional[bool] = None, + can_delete_stories: Optional[bool] = None, + can_manage_topics: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + user_id=user_id, + is_anonymous=is_anonymous, + can_manage_chat=can_manage_chat, + can_delete_messages=can_delete_messages, + can_manage_video_chats=can_manage_video_chats, + can_restrict_members=can_restrict_members, + can_promote_members=can_promote_members, + can_change_info=can_change_info, + can_invite_users=can_invite_users, + can_post_messages=can_post_messages, + can_edit_messages=can_edit_messages, + can_pin_messages=can_pin_messages, + can_post_stories=can_post_stories, + can_edit_stories=can_edit_stories, + can_delete_stories=can_delete_stories, + can_manage_topics=can_manage_topics, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/reopen_forum_topic.py b/aiogram/methods/reopen_forum_topic.py index efe1c31d..45eb18d0 100644 --- a/aiogram/methods/reopen_forum_topic.py +++ b/aiogram/methods/reopen_forum_topic.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -19,3 +19,22 @@ class ReopenForumTopic(TelegramMethod[bool]): """Unique identifier for the target chat or username of the target supergroup (in the format :code:`@supergroupusername`)""" message_thread_id: int """Unique identifier for the target message thread of the forum topic""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + message_thread_id: int, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, message_thread_id=message_thread_id, **__pydantic_kwargs + ) diff --git a/aiogram/methods/reopen_general_forum_topic.py b/aiogram/methods/reopen_general_forum_topic.py index 381278a9..a6dc04e0 100644 --- a/aiogram/methods/reopen_general_forum_topic.py +++ b/aiogram/methods/reopen_general_forum_topic.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -17,3 +17,16 @@ class ReopenGeneralForumTopic(TelegramMethod[bool]): chat_id: Union[int, str] """Unique identifier for the target chat or username of the target supergroup (in the format :code:`@supergroupusername`)""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, chat_id: Union[int, str], **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, **__pydantic_kwargs) diff --git a/aiogram/methods/restrict_chat_member.py b/aiogram/methods/restrict_chat_member.py index efea2f97..5dfbd01d 100644 --- a/aiogram/methods/restrict_chat_member.py +++ b/aiogram/methods/restrict_chat_member.py @@ -1,7 +1,7 @@ from __future__ import annotations import datetime -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from ..types import ChatPermissions from .base import TelegramMethod @@ -26,4 +26,31 @@ class RestrictChatMember(TelegramMethod[bool]): use_independent_chat_permissions: Optional[bool] = None """Pass :code:`True` if chat permissions are set independently. Otherwise, the *can_send_other_messages* and *can_add_web_page_previews* permissions will imply the *can_send_messages*, *can_send_audios*, *can_send_documents*, *can_send_photos*, *can_send_videos*, *can_send_video_notes*, and *can_send_voice_notes* permissions; the *can_send_polls* permission will imply the *can_send_messages* permission.""" until_date: Optional[Union[datetime.datetime, datetime.timedelta, int]] = None - """Date when restrictions will be lifted for the user, unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever""" + """Date when restrictions will be lifted for the user; Unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + user_id: int, + permissions: ChatPermissions, + use_independent_chat_permissions: Optional[bool] = None, + until_date: Optional[Union[datetime.datetime, datetime.timedelta, int]] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + user_id=user_id, + permissions=permissions, + use_independent_chat_permissions=use_independent_chat_permissions, + until_date=until_date, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/revoke_chat_invite_link.py b/aiogram/methods/revoke_chat_invite_link.py index ad31e77d..414feb30 100644 --- a/aiogram/methods/revoke_chat_invite_link.py +++ b/aiogram/methods/revoke_chat_invite_link.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from ..types import ChatInviteLink from .base import TelegramMethod @@ -20,3 +20,20 @@ class RevokeChatInviteLink(TelegramMethod[ChatInviteLink]): """Unique identifier of the target chat or username of the target channel (in the format :code:`@channelusername`)""" invite_link: str """The invite link to revoke""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + invite_link: str, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, invite_link=invite_link, **__pydantic_kwargs) diff --git a/aiogram/methods/send_animation.py b/aiogram/methods/send_animation.py index 14029d25..e803b0b1 100644 --- a/aiogram/methods/send_animation.py +++ b/aiogram/methods/send_animation.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional, Union +from typing import TYPE_CHECKING, Any, List, Optional, Union from ..types import ( UNSET_PARSE_MODE, @@ -60,3 +60,54 @@ class SendAnimation(TelegramMethod[Message]): Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] ] = None """Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + animation: Union[InputFile, str], + message_thread_id: Optional[int] = None, + duration: Optional[int] = None, + width: Optional[int] = None, + height: Optional[int] = None, + thumbnail: Optional[Union[InputFile, str]] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + has_spoiler: Optional[bool] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + animation=animation, + message_thread_id=message_thread_id, + duration=duration, + width=width, + height=height, + thumbnail=thumbnail, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + has_spoiler=has_spoiler, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/send_audio.py b/aiogram/methods/send_audio.py index e0f4b900..fd6404cb 100644 --- a/aiogram/methods/send_audio.py +++ b/aiogram/methods/send_audio.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional, Union +from typing import TYPE_CHECKING, Any, List, Optional, Union from ..types import ( UNSET_PARSE_MODE, @@ -59,3 +59,52 @@ class SendAudio(TelegramMethod[Message]): Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] ] = None """Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + audio: Union[InputFile, str], + message_thread_id: Optional[int] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + duration: Optional[int] = None, + performer: Optional[str] = None, + title: Optional[str] = None, + thumbnail: Optional[Union[InputFile, str]] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + audio=audio, + message_thread_id=message_thread_id, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + duration=duration, + performer=performer, + title=title, + thumbnail=thumbnail, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/send_chat_action.py b/aiogram/methods/send_chat_action.py index d21dc68c..8b936ab7 100644 --- a/aiogram/methods/send_chat_action.py +++ b/aiogram/methods/send_chat_action.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from .base import TelegramMethod @@ -25,3 +25,26 @@ class SendChatAction(TelegramMethod[bool]): """Type of action to broadcast. Choose one, depending on what the user is about to receive: *typing* for `text messages `_, *upload_photo* for `photos `_, *record_video* or *upload_video* for `videos `_, *record_voice* or *upload_voice* for `voice notes `_, *upload_document* for `general files `_, *choose_sticker* for `stickers `_, *find_location* for `location data `_, *record_video_note* or *upload_video_note* for `video notes `_.""" message_thread_id: Optional[int] = None """Unique identifier for the target message thread; supergroups only""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + action: str, + message_thread_id: Optional[int] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + action=action, + message_thread_id=message_thread_id, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/send_contact.py b/aiogram/methods/send_contact.py index 35473338..0053b1ea 100644 --- a/aiogram/methods/send_contact.py +++ b/aiogram/methods/send_contact.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from ..types import ( ForceReply, @@ -47,3 +47,44 @@ class SendContact(TelegramMethod[Message]): Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] ] = None """Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + phone_number: str, + first_name: str, + message_thread_id: Optional[int] = None, + last_name: Optional[str] = None, + vcard: Optional[str] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + phone_number=phone_number, + first_name=first_name, + message_thread_id=message_thread_id, + last_name=last_name, + vcard=vcard, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/send_dice.py b/aiogram/methods/send_dice.py index 9fa2ce70..a06442d5 100644 --- a/aiogram/methods/send_dice.py +++ b/aiogram/methods/send_dice.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from ..types import ( ForceReply, @@ -41,3 +41,38 @@ class SendDice(TelegramMethod[Message]): Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] ] = None """Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + message_thread_id: Optional[int] = None, + emoji: Optional[str] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + message_thread_id=message_thread_id, + emoji=emoji, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/send_document.py b/aiogram/methods/send_document.py index 5c83beb3..d7ac0e20 100644 --- a/aiogram/methods/send_document.py +++ b/aiogram/methods/send_document.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional, Union +from typing import TYPE_CHECKING, Any, List, Optional, Union from ..types import ( UNSET_PARSE_MODE, @@ -54,3 +54,48 @@ class SendDocument(TelegramMethod[Message]): Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] ] = None """Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + document: Union[InputFile, str], + message_thread_id: Optional[int] = None, + thumbnail: Optional[Union[InputFile, str]] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + disable_content_type_detection: Optional[bool] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + document=document, + message_thread_id=message_thread_id, + thumbnail=thumbnail, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + disable_content_type_detection=disable_content_type_detection, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/send_game.py b/aiogram/methods/send_game.py index ab55a459..e7d0e667 100644 --- a/aiogram/methods/send_game.py +++ b/aiogram/methods/send_game.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from ..types import InlineKeyboardMarkup, Message from ..types.base import UNSET_PROTECT_CONTENT @@ -33,3 +33,36 @@ class SendGame(TelegramMethod[Message]): """Pass :code:`True` if the message should be sent even if the specified replied-to message is not found""" reply_markup: Optional[InlineKeyboardMarkup] = None """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.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: int, + game_short_name: str, + message_thread_id: Optional[int] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + game_short_name=game_short_name, + message_thread_id=message_thread_id, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/send_invoice.py b/aiogram/methods/send_invoice.py index d08002a9..71bed6df 100644 --- a/aiogram/methods/send_invoice.py +++ b/aiogram/methods/send_invoice.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional, Union +from typing import TYPE_CHECKING, Any, List, Optional, Union from ..types import InlineKeyboardMarkup, LabeledPrice, Message from ..types.base import UNSET_PROTECT_CONTENT @@ -73,3 +73,76 @@ class SendInvoice(TelegramMethod[Message]): """Pass :code:`True` if the message should be sent even if the specified replied-to message is not found""" reply_markup: Optional[InlineKeyboardMarkup] = None """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.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + title: str, + description: str, + payload: str, + provider_token: str, + currency: str, + prices: List[LabeledPrice], + message_thread_id: Optional[int] = None, + max_tip_amount: Optional[int] = None, + suggested_tip_amounts: Optional[List[int]] = None, + start_parameter: Optional[str] = None, + provider_data: Optional[str] = None, + photo_url: Optional[str] = None, + photo_size: Optional[int] = None, + photo_width: Optional[int] = None, + photo_height: Optional[int] = None, + need_name: Optional[bool] = None, + need_phone_number: Optional[bool] = None, + need_email: Optional[bool] = None, + need_shipping_address: Optional[bool] = None, + send_phone_number_to_provider: Optional[bool] = None, + send_email_to_provider: Optional[bool] = None, + is_flexible: Optional[bool] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + title=title, + description=description, + payload=payload, + provider_token=provider_token, + currency=currency, + prices=prices, + message_thread_id=message_thread_id, + max_tip_amount=max_tip_amount, + suggested_tip_amounts=suggested_tip_amounts, + start_parameter=start_parameter, + provider_data=provider_data, + photo_url=photo_url, + photo_size=photo_size, + photo_width=photo_width, + photo_height=photo_height, + need_name=need_name, + need_phone_number=need_phone_number, + need_email=need_email, + need_shipping_address=need_shipping_address, + send_phone_number_to_provider=send_phone_number_to_provider, + send_email_to_provider=send_email_to_provider, + is_flexible=is_flexible, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/send_location.py b/aiogram/methods/send_location.py index 845b4741..4eac028c 100644 --- a/aiogram/methods/send_location.py +++ b/aiogram/methods/send_location.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from ..types import ( ForceReply, @@ -51,3 +51,48 @@ class SendLocation(TelegramMethod[Message]): Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] ] = None """Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + latitude: float, + longitude: float, + message_thread_id: Optional[int] = None, + horizontal_accuracy: Optional[float] = None, + live_period: Optional[int] = None, + heading: Optional[int] = None, + proximity_alert_radius: Optional[int] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + latitude=latitude, + longitude=longitude, + message_thread_id=message_thread_id, + horizontal_accuracy=horizontal_accuracy, + live_period=live_period, + heading=heading, + proximity_alert_radius=proximity_alert_radius, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/send_media_group.py b/aiogram/methods/send_media_group.py index fd8dbb25..3fa31852 100644 --- a/aiogram/methods/send_media_group.py +++ b/aiogram/methods/send_media_group.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional, Union +from typing import TYPE_CHECKING, Any, List, Optional, Union from ..types import ( InputMediaAudio, @@ -37,3 +37,36 @@ class SendMediaGroup(TelegramMethod[List[Message]]): """If the messages are a reply, ID of the original message""" allow_sending_without_reply: Optional[bool] = None """Pass :code:`True` if the message should be sent even if the specified replied-to message is not found""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + media: List[ + Union[InputMediaAudio, InputMediaDocument, InputMediaPhoto, InputMediaVideo] + ], + message_thread_id: Optional[int] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + media=media, + message_thread_id=message_thread_id, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/send_message.py b/aiogram/methods/send_message.py index 9b7dae7b..8e33687c 100644 --- a/aiogram/methods/send_message.py +++ b/aiogram/methods/send_message.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional, Union +from typing import TYPE_CHECKING, Any, List, Optional, Union from ..types import ( UNSET_PARSE_MODE, @@ -49,3 +49,44 @@ class SendMessage(TelegramMethod[Message]): Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] ] = None """Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + text: str, + message_thread_id: Optional[int] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + entities: Optional[List[MessageEntity]] = None, + disable_web_page_preview: Optional[bool] = UNSET_DISABLE_WEB_PAGE_PREVIEW, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + text=text, + message_thread_id=message_thread_id, + parse_mode=parse_mode, + entities=entities, + disable_web_page_preview=disable_web_page_preview, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/send_photo.py b/aiogram/methods/send_photo.py index 236d8710..521b2b70 100644 --- a/aiogram/methods/send_photo.py +++ b/aiogram/methods/send_photo.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional, Union +from typing import TYPE_CHECKING, Any, List, Optional, Union from ..types import ( UNSET_PARSE_MODE, @@ -52,3 +52,46 @@ class SendPhoto(TelegramMethod[Message]): Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] ] = None """Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + photo: Union[InputFile, str], + message_thread_id: Optional[int] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + has_spoiler: Optional[bool] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + photo=photo, + message_thread_id=message_thread_id, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + has_spoiler=has_spoiler, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/send_poll.py b/aiogram/methods/send_poll.py index fca3dc58..f67ca805 100644 --- a/aiogram/methods/send_poll.py +++ b/aiogram/methods/send_poll.py @@ -1,7 +1,7 @@ from __future__ import annotations import datetime -from typing import TYPE_CHECKING, List, Optional, Union +from typing import TYPE_CHECKING, Any, List, Optional, Union from ..types import ( UNSET_PARSE_MODE, @@ -66,3 +66,60 @@ class SendPoll(TelegramMethod[Message]): Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] ] = None """Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + question: str, + options: List[str], + message_thread_id: Optional[int] = 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[str] = UNSET_PARSE_MODE, + 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[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + question=question, + options=options, + message_thread_id=message_thread_id, + is_anonymous=is_anonymous, + type=type, + allows_multiple_answers=allows_multiple_answers, + correct_option_id=correct_option_id, + explanation=explanation, + explanation_parse_mode=explanation_parse_mode, + explanation_entities=explanation_entities, + open_period=open_period, + close_date=close_date, + is_closed=is_closed, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/send_sticker.py b/aiogram/methods/send_sticker.py index 8429b105..6e270024 100644 --- a/aiogram/methods/send_sticker.py +++ b/aiogram/methods/send_sticker.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from ..types import ( ForceReply, @@ -44,3 +44,40 @@ class SendSticker(TelegramMethod[Message]): Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] ] = None """Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + sticker: Union[InputFile, str], + message_thread_id: Optional[int] = None, + emoji: Optional[str] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + sticker=sticker, + message_thread_id=message_thread_id, + emoji=emoji, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/send_venue.py b/aiogram/methods/send_venue.py index d0859770..85137d42 100644 --- a/aiogram/methods/send_venue.py +++ b/aiogram/methods/send_venue.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from ..types import ( ForceReply, @@ -55,3 +55,52 @@ class SendVenue(TelegramMethod[Message]): Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] ] = None """Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + latitude: float, + longitude: float, + title: str, + address: str, + message_thread_id: Optional[int] = None, + foursquare_id: Optional[str] = None, + foursquare_type: Optional[str] = None, + google_place_id: Optional[str] = None, + google_place_type: Optional[str] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + latitude=latitude, + longitude=longitude, + title=title, + address=address, + message_thread_id=message_thread_id, + foursquare_id=foursquare_id, + foursquare_type=foursquare_type, + google_place_id=google_place_id, + google_place_type=google_place_type, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/send_video.py b/aiogram/methods/send_video.py index a894e335..c61a8c92 100644 --- a/aiogram/methods/send_video.py +++ b/aiogram/methods/send_video.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional, Union +from typing import TYPE_CHECKING, Any, List, Optional, Union from ..types import ( UNSET_PARSE_MODE, @@ -62,3 +62,56 @@ class SendVideo(TelegramMethod[Message]): Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] ] = None """Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + video: Union[InputFile, str], + message_thread_id: Optional[int] = None, + duration: Optional[int] = None, + width: Optional[int] = None, + height: Optional[int] = None, + thumbnail: Optional[Union[InputFile, str]] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + has_spoiler: Optional[bool] = None, + supports_streaming: Optional[bool] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + video=video, + message_thread_id=message_thread_id, + duration=duration, + width=width, + height=height, + thumbnail=thumbnail, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + has_spoiler=has_spoiler, + supports_streaming=supports_streaming, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/send_video_note.py b/aiogram/methods/send_video_note.py index 761c91a2..235134dd 100644 --- a/aiogram/methods/send_video_note.py +++ b/aiogram/methods/send_video_note.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from ..types import ( ForceReply, @@ -48,3 +48,44 @@ class SendVideoNote(TelegramMethod[Message]): Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] ] = None """Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + video_note: Union[InputFile, str], + message_thread_id: Optional[int] = None, + duration: Optional[int] = None, + length: Optional[int] = None, + thumbnail: Optional[Union[InputFile, str]] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + video_note=video_note, + message_thread_id=message_thread_id, + duration=duration, + length=length, + thumbnail=thumbnail, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/send_voice.py b/aiogram/methods/send_voice.py index ae692ad6..24fd86e2 100644 --- a/aiogram/methods/send_voice.py +++ b/aiogram/methods/send_voice.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional, Union +from typing import TYPE_CHECKING, Any, List, Optional, Union from ..types import ( UNSET_PARSE_MODE, @@ -52,3 +52,46 @@ class SendVoice(TelegramMethod[Message]): Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] ] = None """Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + voice: Union[InputFile, str], + message_thread_id: Optional[int] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + duration: Optional[int] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + voice=voice, + message_thread_id=message_thread_id, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + duration=duration, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/set_chat_administrator_custom_title.py b/aiogram/methods/set_chat_administrator_custom_title.py index edf79d8c..a7953c12 100644 --- a/aiogram/methods/set_chat_administrator_custom_title.py +++ b/aiogram/methods/set_chat_administrator_custom_title.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -21,3 +21,23 @@ class SetChatAdministratorCustomTitle(TelegramMethod[bool]): """Unique identifier of the target user""" custom_title: str """New custom title for the administrator; 0-16 characters, emoji are not allowed""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + user_id: int, + custom_title: str, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, user_id=user_id, custom_title=custom_title, **__pydantic_kwargs + ) diff --git a/aiogram/methods/set_chat_description.py b/aiogram/methods/set_chat_description.py index 05b51a69..0f8a4a4b 100644 --- a/aiogram/methods/set_chat_description.py +++ b/aiogram/methods/set_chat_description.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from .base import TelegramMethod @@ -19,3 +19,20 @@ class SetChatDescription(TelegramMethod[bool]): """Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`)""" description: Optional[str] = None """New chat description, 0-255 characters""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + description: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, description=description, **__pydantic_kwargs) diff --git a/aiogram/methods/set_chat_menu_button.py b/aiogram/methods/set_chat_menu_button.py index 6eeb3a10..97515d5a 100644 --- a/aiogram/methods/set_chat_menu_button.py +++ b/aiogram/methods/set_chat_menu_button.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from ..types import MenuButtonCommands, MenuButtonDefault, MenuButtonWebApp from .base import TelegramMethod @@ -18,5 +18,24 @@ class SetChatMenuButton(TelegramMethod[bool]): chat_id: Optional[int] = None """Unique identifier for the target private chat. If not specified, default bot's menu button will be changed""" - menu_button: Optional[Union[MenuButtonDefault, MenuButtonWebApp, MenuButtonCommands]] = None + menu_button: Optional[Union[MenuButtonCommands, MenuButtonWebApp, MenuButtonDefault]] = None """A JSON-serialized object for the bot's new menu button. Defaults to :class:`aiogram.types.menu_button_default.MenuButtonDefault`""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Optional[int] = None, + menu_button: Optional[ + Union[MenuButtonCommands, MenuButtonWebApp, MenuButtonDefault] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, menu_button=menu_button, **__pydantic_kwargs) diff --git a/aiogram/methods/set_chat_permissions.py b/aiogram/methods/set_chat_permissions.py index af13ddb7..232af08c 100644 --- a/aiogram/methods/set_chat_permissions.py +++ b/aiogram/methods/set_chat_permissions.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from ..types import ChatPermissions from .base import TelegramMethod @@ -22,3 +22,26 @@ class SetChatPermissions(TelegramMethod[bool]): """A JSON-serialized object for new default chat permissions""" use_independent_chat_permissions: Optional[bool] = None """Pass :code:`True` if chat permissions are set independently. Otherwise, the *can_send_other_messages* and *can_add_web_page_previews* permissions will imply the *can_send_messages*, *can_send_audios*, *can_send_documents*, *can_send_photos*, *can_send_videos*, *can_send_video_notes*, and *can_send_voice_notes* permissions; the *can_send_polls* permission will imply the *can_send_messages* permission.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + permissions: ChatPermissions, + use_independent_chat_permissions: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + permissions=permissions, + use_independent_chat_permissions=use_independent_chat_permissions, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/set_chat_photo.py b/aiogram/methods/set_chat_photo.py index ba7b8de3..105f8f87 100644 --- a/aiogram/methods/set_chat_photo.py +++ b/aiogram/methods/set_chat_photo.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from ..types import InputFile from .base import TelegramMethod @@ -20,3 +20,20 @@ class SetChatPhoto(TelegramMethod[bool]): """Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`)""" photo: InputFile """New chat photo, uploaded using multipart/form-data""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + photo: InputFile, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, photo=photo, **__pydantic_kwargs) diff --git a/aiogram/methods/set_chat_sticker_set.py b/aiogram/methods/set_chat_sticker_set.py index a7f3d216..62ed5d18 100644 --- a/aiogram/methods/set_chat_sticker_set.py +++ b/aiogram/methods/set_chat_sticker_set.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -19,3 +19,22 @@ class SetChatStickerSet(TelegramMethod[bool]): """Unique identifier for the target chat or username of the target supergroup (in the format :code:`@supergroupusername`)""" sticker_set_name: str """Name of the sticker set to be set as the group sticker set""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + sticker_set_name: str, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, sticker_set_name=sticker_set_name, **__pydantic_kwargs + ) diff --git a/aiogram/methods/set_chat_title.py b/aiogram/methods/set_chat_title.py index 07507d0f..04b52e09 100644 --- a/aiogram/methods/set_chat_title.py +++ b/aiogram/methods/set_chat_title.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -19,3 +19,16 @@ class SetChatTitle(TelegramMethod[bool]): """Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`)""" title: str """New chat title, 1-128 characters""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, chat_id: Union[int, str], title: str, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, title=title, **__pydantic_kwargs) diff --git a/aiogram/methods/set_custom_emoji_sticker_set_thumbnail.py b/aiogram/methods/set_custom_emoji_sticker_set_thumbnail.py index 10a4a267..47e9c033 100644 --- a/aiogram/methods/set_custom_emoji_sticker_set_thumbnail.py +++ b/aiogram/methods/set_custom_emoji_sticker_set_thumbnail.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramMethod @@ -19,3 +19,20 @@ class SetCustomEmojiStickerSetThumbnail(TelegramMethod[bool]): """Sticker set name""" custom_emoji_id: Optional[str] = None """Custom emoji identifier of a sticker from the sticker set; pass an empty string to drop the thumbnail and use the first sticker as the thumbnail.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + name: str, + custom_emoji_id: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(name=name, custom_emoji_id=custom_emoji_id, **__pydantic_kwargs) diff --git a/aiogram/methods/set_game_score.py b/aiogram/methods/set_game_score.py index 170988ec..38e5374f 100644 --- a/aiogram/methods/set_game_score.py +++ b/aiogram/methods/set_game_score.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from ..types import Message from .base import TelegramMethod @@ -30,3 +30,34 @@ class SetGameScore(TelegramMethod[Union[Message, bool]]): """Required if *inline_message_id* is not specified. Identifier of the sent message""" inline_message_id: Optional[str] = None """Required if *chat_id* and *message_id* are not specified. Identifier of the inline message""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + user_id: int, + score: int, + force: Optional[bool] = None, + disable_edit_message: Optional[bool] = None, + chat_id: Optional[int] = None, + message_id: Optional[int] = None, + inline_message_id: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + user_id=user_id, + score=score, + force=force, + disable_edit_message=disable_edit_message, + chat_id=chat_id, + message_id=message_id, + inline_message_id=inline_message_id, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/set_my_commands.py b/aiogram/methods/set_my_commands.py index a62e7a84..2e52771f 100644 --- a/aiogram/methods/set_my_commands.py +++ b/aiogram/methods/set_my_commands.py @@ -1,8 +1,17 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Any, List, Optional, Union -from ..types import BotCommand, BotCommandScope +from ..types import ( + BotCommand, + BotCommandScopeAllChatAdministrators, + BotCommandScopeAllGroupChats, + BotCommandScopeAllPrivateChats, + BotCommandScopeChat, + BotCommandScopeChatAdministrators, + BotCommandScopeChatMember, + BotCommandScopeDefault, +) from .base import TelegramMethod @@ -18,7 +27,47 @@ class SetMyCommands(TelegramMethod[bool]): commands: List[BotCommand] """A JSON-serialized list of bot commands to be set as the list of the bot's commands. At most 100 commands can be specified.""" - scope: Optional[BotCommandScope] = None + scope: Optional[ + Union[ + BotCommandScopeDefault, + BotCommandScopeAllPrivateChats, + BotCommandScopeAllGroupChats, + BotCommandScopeAllChatAdministrators, + BotCommandScopeChat, + BotCommandScopeChatAdministrators, + BotCommandScopeChatMember, + ] + ] = None """A JSON-serialized object, describing scope of users for which the commands are relevant. Defaults to :class:`aiogram.types.bot_command_scope_default.BotCommandScopeDefault`.""" language_code: Optional[str] = None """A two-letter ISO 639-1 language code. If empty, commands will be applied to all users from the given scope, for whose language there are no dedicated commands""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + commands: List[BotCommand], + scope: Optional[ + Union[ + BotCommandScopeDefault, + BotCommandScopeAllPrivateChats, + BotCommandScopeAllGroupChats, + BotCommandScopeAllChatAdministrators, + BotCommandScopeChat, + BotCommandScopeChatAdministrators, + BotCommandScopeChatMember, + ] + ] = None, + language_code: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + commands=commands, scope=scope, language_code=language_code, **__pydantic_kwargs + ) diff --git a/aiogram/methods/set_my_default_administrator_rights.py b/aiogram/methods/set_my_default_administrator_rights.py index 0b1468bc..02aa7ada 100644 --- a/aiogram/methods/set_my_default_administrator_rights.py +++ b/aiogram/methods/set_my_default_administrator_rights.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from ..types import ChatAdministratorRights from .base import TelegramMethod @@ -20,3 +20,20 @@ class SetMyDefaultAdministratorRights(TelegramMethod[bool]): """A JSON-serialized object describing new default administrator rights. If not specified, the default administrator rights will be cleared.""" for_channels: Optional[bool] = None """Pass :code:`True` to change the default administrator rights of the bot in channels. Otherwise, the default administrator rights of the bot for groups and supergroups will be changed.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + rights: Optional[ChatAdministratorRights] = None, + for_channels: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(rights=rights, for_channels=for_channels, **__pydantic_kwargs) diff --git a/aiogram/methods/set_my_description.py b/aiogram/methods/set_my_description.py index 2af2ed44..ee192c88 100644 --- a/aiogram/methods/set_my_description.py +++ b/aiogram/methods/set_my_description.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramMethod @@ -19,3 +19,22 @@ class SetMyDescription(TelegramMethod[bool]): """New bot description; 0-512 characters. Pass an empty string to remove the dedicated description for the given language.""" language_code: Optional[str] = None """A two-letter ISO 639-1 language code. If empty, the description will be applied to all users for whose language there is no dedicated description.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + description: Optional[str] = None, + language_code: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + description=description, language_code=language_code, **__pydantic_kwargs + ) diff --git a/aiogram/methods/set_my_name.py b/aiogram/methods/set_my_name.py index 9b392281..3633fdc8 100644 --- a/aiogram/methods/set_my_name.py +++ b/aiogram/methods/set_my_name.py @@ -1,4 +1,4 @@ -from typing import Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramMethod @@ -17,3 +17,20 @@ class SetMyName(TelegramMethod[bool]): """New bot name; 0-64 characters. Pass an empty string to remove the dedicated name for the given language.""" language_code: Optional[str] = None """A two-letter ISO 639-1 language code. If empty, the name will be shown to all users for whose language there is no dedicated name.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + name: Optional[str] = None, + language_code: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(name=name, language_code=language_code, **__pydantic_kwargs) diff --git a/aiogram/methods/set_my_short_description.py b/aiogram/methods/set_my_short_description.py index 19e5b254..22fa5817 100644 --- a/aiogram/methods/set_my_short_description.py +++ b/aiogram/methods/set_my_short_description.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramMethod @@ -19,3 +19,24 @@ class SetMyShortDescription(TelegramMethod[bool]): """New short description for the bot; 0-120 characters. Pass an empty string to remove the dedicated short description for the given language.""" language_code: Optional[str] = None """A two-letter ISO 639-1 language code. If empty, the short description will be applied to all users for whose language there is no dedicated short description.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + short_description: Optional[str] = None, + language_code: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + short_description=short_description, + language_code=language_code, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/set_passport_data_errors.py b/aiogram/methods/set_passport_data_errors.py index ae127d2b..0ad7e8bb 100644 --- a/aiogram/methods/set_passport_data_errors.py +++ b/aiogram/methods/set_passport_data_errors.py @@ -1,8 +1,18 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List +from typing import TYPE_CHECKING, Any, List, Union -from ..types import PassportElementError +from ..types import ( + PassportElementErrorDataField, + PassportElementErrorFile, + PassportElementErrorFiles, + PassportElementErrorFrontSide, + PassportElementErrorReverseSide, + PassportElementErrorSelfie, + PassportElementErrorTranslationFile, + PassportElementErrorTranslationFiles, + PassportElementErrorUnspecified, +) from .base import TelegramMethod @@ -19,5 +29,46 @@ class SetPassportDataErrors(TelegramMethod[bool]): user_id: int """User identifier""" - errors: List[PassportElementError] + errors: List[ + Union[ + PassportElementErrorDataField, + PassportElementErrorFrontSide, + PassportElementErrorReverseSide, + PassportElementErrorSelfie, + PassportElementErrorFile, + PassportElementErrorFiles, + PassportElementErrorTranslationFile, + PassportElementErrorTranslationFiles, + PassportElementErrorUnspecified, + ] + ] """A JSON-serialized array describing the errors""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + user_id: int, + errors: List[ + Union[ + PassportElementErrorDataField, + PassportElementErrorFrontSide, + PassportElementErrorReverseSide, + PassportElementErrorSelfie, + PassportElementErrorFile, + PassportElementErrorFiles, + PassportElementErrorTranslationFile, + PassportElementErrorTranslationFiles, + PassportElementErrorUnspecified, + ] + ], + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(user_id=user_id, errors=errors, **__pydantic_kwargs) diff --git a/aiogram/methods/set_sticker_emoji_list.py b/aiogram/methods/set_sticker_emoji_list.py index f23033c7..ac268c1e 100644 --- a/aiogram/methods/set_sticker_emoji_list.py +++ b/aiogram/methods/set_sticker_emoji_list.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List +from typing import TYPE_CHECKING, Any, List from .base import TelegramMethod @@ -19,3 +19,16 @@ class SetStickerEmojiList(TelegramMethod[bool]): """File identifier of the sticker""" emoji_list: List[str] """A JSON-serialized list of 1-20 emoji associated with the sticker""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, sticker: str, emoji_list: List[str], **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(sticker=sticker, emoji_list=emoji_list, **__pydantic_kwargs) diff --git a/aiogram/methods/set_sticker_keywords.py b/aiogram/methods/set_sticker_keywords.py index 0ebef118..49e68f85 100644 --- a/aiogram/methods/set_sticker_keywords.py +++ b/aiogram/methods/set_sticker_keywords.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Any, List, Optional from .base import TelegramMethod @@ -19,3 +19,20 @@ class SetStickerKeywords(TelegramMethod[bool]): """File identifier of the sticker""" keywords: Optional[List[str]] = None """A JSON-serialized list of 0-20 search keywords for the sticker with total length of up to 64 characters""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + sticker: str, + keywords: Optional[List[str]] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(sticker=sticker, keywords=keywords, **__pydantic_kwargs) diff --git a/aiogram/methods/set_sticker_mask_position.py b/aiogram/methods/set_sticker_mask_position.py index f3147f2d..617e48b5 100644 --- a/aiogram/methods/set_sticker_mask_position.py +++ b/aiogram/methods/set_sticker_mask_position.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from ..types import MaskPosition from .base import TelegramMethod @@ -20,3 +20,20 @@ class SetStickerMaskPosition(TelegramMethod[bool]): """File identifier of the sticker""" mask_position: Optional[MaskPosition] = None """A JSON-serialized object with the position where the mask should be placed on faces. Omit the parameter to remove the mask position.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + sticker: str, + mask_position: Optional[MaskPosition] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(sticker=sticker, mask_position=mask_position, **__pydantic_kwargs) diff --git a/aiogram/methods/set_sticker_position_in_set.py b/aiogram/methods/set_sticker_position_in_set.py index ed5792ae..8d30eab1 100644 --- a/aiogram/methods/set_sticker_position_in_set.py +++ b/aiogram/methods/set_sticker_position_in_set.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any from .base import TelegramMethod @@ -19,3 +19,16 @@ class SetStickerPositionInSet(TelegramMethod[bool]): """File identifier of the sticker""" position: int """New sticker position in the set, zero-based""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, sticker: str, position: int, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(sticker=sticker, position=position, **__pydantic_kwargs) diff --git a/aiogram/methods/set_sticker_set_thumbnail.py b/aiogram/methods/set_sticker_set_thumbnail.py index 7da1c397..6536d298 100644 --- a/aiogram/methods/set_sticker_set_thumbnail.py +++ b/aiogram/methods/set_sticker_set_thumbnail.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from ..types import InputFile from .base import TelegramMethod @@ -22,3 +22,21 @@ class SetStickerSetThumbnail(TelegramMethod[bool]): """User identifier of the sticker set owner""" thumbnail: Optional[Union[InputFile, str]] = None """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.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + name: str, + user_id: int, + thumbnail: Optional[Union[InputFile, str]] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(name=name, user_id=user_id, thumbnail=thumbnail, **__pydantic_kwargs) diff --git a/aiogram/methods/set_sticker_set_title.py b/aiogram/methods/set_sticker_set_title.py index 978432ff..ec25473a 100644 --- a/aiogram/methods/set_sticker_set_title.py +++ b/aiogram/methods/set_sticker_set_title.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any from .base import TelegramMethod @@ -19,3 +19,16 @@ class SetStickerSetTitle(TelegramMethod[bool]): """Sticker set name""" title: str """Sticker set title, 1-64 characters""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, name: str, title: str, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(name=name, title=title, **__pydantic_kwargs) diff --git a/aiogram/methods/set_webhook.py b/aiogram/methods/set_webhook.py index 6e63a75a..da8ec9d4 100644 --- a/aiogram/methods/set_webhook.py +++ b/aiogram/methods/set_webhook.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Any, List, Optional from ..types import InputFile from .base import TelegramMethod @@ -35,8 +35,39 @@ class SetWebhook(TelegramMethod[bool]): max_connections: Optional[int] = None """The maximum allowed number of simultaneous HTTPS connections to the webhook for update delivery, 1-100. Defaults to *40*. Use lower values to limit the load on your bot's server, and higher values to increase your bot's throughput.""" allowed_updates: Optional[List[str]] = None - """A JSON-serialized list of the update types you want your bot to receive. For example, specify ['message', 'edited_channel_post', 'callback_query'] to only receive updates of these types. See :class:`aiogram.types.update.Update` for a complete list of available update types. Specify an empty list to receive all update types except *chat_member* (default). If not specified, the previous setting will be used.""" + """A JSON-serialized list of the update types you want your bot to receive. For example, specify :code:`["message", "edited_channel_post", "callback_query"]` to only receive updates of these types. See :class:`aiogram.types.update.Update` for a complete list of available update types. Specify an empty list to receive all update types except *chat_member* (default). If not specified, the previous setting will be used.""" drop_pending_updates: Optional[bool] = None """Pass :code:`True` to drop all pending updates""" secret_token: Optional[str] = None """A secret token to be sent in a header 'X-Telegram-Bot-Api-Secret-Token' in every webhook request, 1-256 characters. Only characters :code:`A-Z`, :code:`a-z`, :code:`0-9`, :code:`_` and :code:`-` are allowed. The header is useful to ensure that the request comes from a webhook set by you.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + url: str, + certificate: Optional[InputFile] = None, + ip_address: Optional[str] = None, + max_connections: Optional[int] = None, + allowed_updates: Optional[List[str]] = None, + drop_pending_updates: Optional[bool] = None, + secret_token: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + url=url, + certificate=certificate, + ip_address=ip_address, + max_connections=max_connections, + allowed_updates=allowed_updates, + drop_pending_updates=drop_pending_updates, + secret_token=secret_token, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/stop_message_live_location.py b/aiogram/methods/stop_message_live_location.py index 8a16f586..a6680955 100644 --- a/aiogram/methods/stop_message_live_location.py +++ b/aiogram/methods/stop_message_live_location.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from ..types import InlineKeyboardMarkup, Message from .base import TelegramMethod @@ -24,3 +24,28 @@ class StopMessageLiveLocation(TelegramMethod[Union[Message, bool]]): """Required if *chat_id* and *message_id* are not specified. Identifier of the inline message""" reply_markup: Optional[InlineKeyboardMarkup] = None """A JSON-serialized object for a new `inline keyboard `_.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Optional[Union[int, str]] = None, + message_id: Optional[int] = None, + inline_message_id: Optional[str] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + message_id=message_id, + inline_message_id=inline_message_id, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/stop_poll.py b/aiogram/methods/stop_poll.py index 19ef26ac..81c46b1a 100644 --- a/aiogram/methods/stop_poll.py +++ b/aiogram/methods/stop_poll.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from ..types import InlineKeyboardMarkup, Poll from .base import TelegramMethod @@ -22,3 +22,26 @@ class StopPoll(TelegramMethod[Poll]): """Identifier of the original message with the poll""" reply_markup: Optional[InlineKeyboardMarkup] = None """A JSON-serialized object for a new message `inline keyboard `_.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + message_id: int, + reply_markup: Optional[InlineKeyboardMarkup] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + message_id=message_id, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/unban_chat_member.py b/aiogram/methods/unban_chat_member.py index 768eea22..1094db52 100644 --- a/aiogram/methods/unban_chat_member.py +++ b/aiogram/methods/unban_chat_member.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from .base import TelegramMethod @@ -21,3 +21,26 @@ class UnbanChatMember(TelegramMethod[bool]): """Unique identifier of the target user""" only_if_banned: Optional[bool] = None """Do nothing if the user is not banned""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + user_id: int, + only_if_banned: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, + user_id=user_id, + only_if_banned=only_if_banned, + **__pydantic_kwargs, + ) diff --git a/aiogram/methods/unban_chat_sender_chat.py b/aiogram/methods/unban_chat_sender_chat.py index fbd3f1d3..b9816984 100644 --- a/aiogram/methods/unban_chat_sender_chat.py +++ b/aiogram/methods/unban_chat_sender_chat.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -19,3 +19,20 @@ class UnbanChatSenderChat(TelegramMethod[bool]): """Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`)""" sender_chat_id: int """Unique identifier of the target sender chat""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + sender_chat_id: int, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, sender_chat_id=sender_chat_id, **__pydantic_kwargs) diff --git a/aiogram/methods/unhide_general_forum_topic.py b/aiogram/methods/unhide_general_forum_topic.py index 82524758..a9149bc8 100644 --- a/aiogram/methods/unhide_general_forum_topic.py +++ b/aiogram/methods/unhide_general_forum_topic.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -17,3 +17,16 @@ class UnhideGeneralForumTopic(TelegramMethod[bool]): chat_id: Union[int, str] """Unique identifier for the target chat or username of the target supergroup (in the format :code:`@supergroupusername`)""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, chat_id: Union[int, str], **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, **__pydantic_kwargs) diff --git a/aiogram/methods/unpin_all_chat_messages.py b/aiogram/methods/unpin_all_chat_messages.py index f8566e33..aca090f3 100644 --- a/aiogram/methods/unpin_all_chat_messages.py +++ b/aiogram/methods/unpin_all_chat_messages.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -17,3 +17,16 @@ class UnpinAllChatMessages(TelegramMethod[bool]): chat_id: Union[int, str] """Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`)""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, chat_id: Union[int, str], **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, **__pydantic_kwargs) diff --git a/aiogram/methods/unpin_all_forum_topic_messages.py b/aiogram/methods/unpin_all_forum_topic_messages.py index 6b735e98..f1350ecc 100644 --- a/aiogram/methods/unpin_all_forum_topic_messages.py +++ b/aiogram/methods/unpin_all_forum_topic_messages.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Union +from typing import TYPE_CHECKING, Any, Union from .base import TelegramMethod @@ -19,3 +19,22 @@ class UnpinAllForumTopicMessages(TelegramMethod[bool]): """Unique identifier for the target chat or username of the target supergroup (in the format :code:`@supergroupusername`)""" message_thread_id: int """Unique identifier for the target message thread of the forum topic""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + message_thread_id: int, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat_id=chat_id, message_thread_id=message_thread_id, **__pydantic_kwargs + ) diff --git a/aiogram/methods/unpin_all_general_forum_topic_messages.py b/aiogram/methods/unpin_all_general_forum_topic_messages.py new file mode 100644 index 00000000..be76c198 --- /dev/null +++ b/aiogram/methods/unpin_all_general_forum_topic_messages.py @@ -0,0 +1,30 @@ +from typing import TYPE_CHECKING, Any, Union + +from aiogram.methods import TelegramMethod + + +class UnpinAllGeneralForumTopicMessages(TelegramMethod[bool]): + """ + Use this method to clear the list of pinned messages in a General forum topic. The bot must be an administrator in the chat for this to work and must have the *can_pin_messages* administrator right in the supergroup. Returns :code:`True` on success. + + Source: https://core.telegram.org/bots/api#unpinallgeneralforumtopicmessages + """ + + __returning__ = bool + __api_method__ = "unpinAllGeneralForumTopicMessages" + + chat_id: Union[int, str] + """Unique identifier for the target chat or username of the target supergroup (in the format :code:`@supergroupusername`)""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, chat_id: Union[int, str], **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, **__pydantic_kwargs) diff --git a/aiogram/methods/unpin_chat_message.py b/aiogram/methods/unpin_chat_message.py index 0d5d2b0a..90547140 100644 --- a/aiogram/methods/unpin_chat_message.py +++ b/aiogram/methods/unpin_chat_message.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, Optional, Union from .base import TelegramMethod @@ -19,3 +19,20 @@ class UnpinChatMessage(TelegramMethod[bool]): """Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`)""" message_id: Optional[int] = None """Identifier of a message to unpin. If not specified, the most recent pinned message (by sending date) will be unpinned.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat_id: Union[int, str], + message_id: Optional[int] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(chat_id=chat_id, message_id=message_id, **__pydantic_kwargs) diff --git a/aiogram/methods/upload_sticker_file.py b/aiogram/methods/upload_sticker_file.py index 2194e35f..077a9822 100644 --- a/aiogram/methods/upload_sticker_file.py +++ b/aiogram/methods/upload_sticker_file.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any from ..types import File, InputFile from .base import TelegramMethod @@ -22,3 +22,26 @@ class UploadStickerFile(TelegramMethod[File]): """A file with the sticker in .WEBP, .PNG, .TGS, or .WEBM format. See `https://core.telegram.org/stickers `_`https://core.telegram.org/stickers `_ for technical requirements. :ref:`More information on Sending Files » `""" sticker_format: str """Format of the sticker, must be one of 'static', 'animated', 'video'""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + user_id: int, + sticker: InputFile, + sticker_format: str, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + user_id=user_id, + sticker=sticker, + sticker_format=sticker_format, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/__init__.py b/aiogram/types/__init__.py index 4808f7fe..8f4b6f34 100644 --- a/aiogram/types/__init__.py +++ b/aiogram/types/__init__.py @@ -1,4 +1,4 @@ -from typing import Optional +from typing import List, Literal, Optional, Union from .animation import Animation from .audio import Audio @@ -37,6 +37,7 @@ from .chat_photo import ChatPhoto from .chat_shared import ChatShared from .chosen_inline_result import ChosenInlineResult from .contact import Contact +from .custom import DateTime from .dice import Dice from .document import Document from .downloadable import Downloadable @@ -140,6 +141,7 @@ from .shipping_option import ShippingOption from .shipping_query import ShippingQuery from .sticker import Sticker from .sticker_set import StickerSet +from .story import Story from .successful_payment import SuccessfulPayment from .switch_inline_query_chosen_chat import SwitchInlineQueryChosenChat from .update import Update @@ -196,6 +198,7 @@ __all__ = ( "ChosenInlineResult", "Contact", "ContentType", + "DateTime", "Dice", "Document", "Downloadable", @@ -298,6 +301,7 @@ __all__ = ( "ShippingQuery", "Sticker", "StickerSet", + "Story", "SuccessfulPayment", "SwitchInlineQueryChosenChat", "TelegramObject", @@ -324,11 +328,16 @@ __all__ = ( # Load typing forward refs for every TelegramObject for _entity_name in __all__: _entity = globals()[_entity_name] - if not hasattr(_entity, "update_forward_refs"): + if not hasattr(_entity, "model_rebuild"): continue - _entity.update_forward_refs( - **{k: v for k, v in globals().items() if k in __all__}, - **{"Optional": Optional}, + _entity.model_rebuild( + _types_namespace={ + "List": List, + "Optional": Optional, + "Union": Union, + "Literal": Literal, + **{k: v for k, v in globals().items() if k in __all__}, + } ) del _entity diff --git a/aiogram/types/animation.py b/aiogram/types/animation.py index 15354156..856a5b37 100644 --- a/aiogram/types/animation.py +++ b/aiogram/types/animation.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramObject @@ -33,3 +33,38 @@ class Animation(TelegramObject): """*Optional*. MIME type of the file as defined by sender""" file_size: Optional[int] = None """*Optional*. File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + file_id: str, + file_unique_id: str, + width: int, + height: int, + duration: int, + thumbnail: Optional[PhotoSize] = None, + file_name: Optional[str] = None, + mime_type: Optional[str] = None, + file_size: Optional[int] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + file_id=file_id, + file_unique_id=file_unique_id, + width=width, + height=height, + duration=duration, + thumbnail=thumbnail, + file_name=file_name, + mime_type=mime_type, + file_size=file_size, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/audio.py b/aiogram/types/audio.py index 0a147c36..f42e3bf2 100644 --- a/aiogram/types/audio.py +++ b/aiogram/types/audio.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramObject @@ -33,3 +33,38 @@ class Audio(TelegramObject): """*Optional*. File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value.""" thumbnail: Optional[PhotoSize] = None """*Optional*. Thumbnail of the album cover to which the music file belongs""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + file_id: str, + file_unique_id: str, + duration: int, + performer: Optional[str] = None, + title: Optional[str] = None, + file_name: Optional[str] = None, + mime_type: Optional[str] = None, + file_size: Optional[int] = None, + thumbnail: Optional[PhotoSize] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + file_id=file_id, + file_unique_id=file_unique_id, + duration=duration, + performer=performer, + title=title, + file_name=file_name, + mime_type=mime_type, + file_size=file_size, + thumbnail=thumbnail, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/base.py b/aiogram/types/base.py index 707e328c..dae52156 100644 --- a/aiogram/types/base.py +++ b/aiogram/types/base.py @@ -1,30 +1,47 @@ -import datetime -from typing import Any +from typing import Any, Dict from unittest.mock import sentinel -from pydantic import BaseModel, Extra +from pydantic import BaseModel, ConfigDict, model_validator -from aiogram.utils.mixins import ContextInstanceMixin +from aiogram.client.context_controller import BotContextController -class TelegramObject(ContextInstanceMixin["TelegramObject"], BaseModel): - class Config: - use_enum_values = True - orm_mode = True - extra = Extra.allow - validate_assignment = True - allow_mutation = False - allow_population_by_field_name = True - json_encoders = {datetime.datetime: lambda dt: int(dt.timestamp())} +class TelegramObject(BotContextController, BaseModel): + model_config = ConfigDict( + use_enum_values=True, + extra="allow", + validate_assignment=True, + frozen=True, + populate_by_name=True, + arbitrary_types_allowed=True, + defer_build=True, + ) + + @model_validator(mode="before") + @classmethod + def remove_unset(cls, values: Dict[str, Any]) -> Dict[str, Any]: + """ + Remove UNSET before fields validation. + + We use UNSET as a sentinel value for `parse_mode` and replace it to real value later. + It isn't a problem when it's just default value for a model field, + but UNSET might be passed to a model initialization from `Bot.method_name`, + so we must take care of it and remove it before fields validation. + """ + if not isinstance(values, dict): + return values + return {k: v for k, v in values.items() if not isinstance(v, UNSET_TYPE)} class MutableTelegramObject(TelegramObject): - class Config: - allow_mutation = True + model_config = ConfigDict( + frozen=False, + ) -# special sentinel object which used in situation when None might be a useful value +# special sentinel object which used in a situation when None might be a useful value +UNSET: Any = sentinel.UNSET UNSET_PARSE_MODE: Any = sentinel.UNSET_PARSE_MODE -UNSET_DISABLE_WEB_PAGE_PREVIEW = sentinel.UNSET_DISABLE_WEB_PAGE_PREVIEW -UNSET_PROTECT_CONTENT = sentinel.UNSET_PROTECT_CONTENT -UNSET_TYPE = type(sentinel.DEFAULT) +UNSET_DISABLE_WEB_PAGE_PREVIEW: Any = sentinel.UNSET_DISABLE_WEB_PAGE_PREVIEW +UNSET_PROTECT_CONTENT: Any = sentinel.UNSET_PROTECT_CONTENT +UNSET_TYPE: Any = type(UNSET) diff --git a/aiogram/types/bot_command.py b/aiogram/types/bot_command.py index 1bf65eba..e4e91759 100644 --- a/aiogram/types/bot_command.py +++ b/aiogram/types/bot_command.py @@ -1,5 +1,7 @@ from __future__ import annotations +from typing import TYPE_CHECKING, Any + from .base import MutableTelegramObject @@ -14,3 +16,16 @@ class BotCommand(MutableTelegramObject): """Text of the command; 1-32 characters. Can contain only lowercase English letters, digits and underscores.""" description: str """Description of the command; 1-256 characters.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, command: str, description: str, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(command=command, description=description, **__pydantic_kwargs) diff --git a/aiogram/types/bot_command_scope_all_chat_administrators.py b/aiogram/types/bot_command_scope_all_chat_administrators.py index e9f6a969..061945f7 100644 --- a/aiogram/types/bot_command_scope_all_chat_administrators.py +++ b/aiogram/types/bot_command_scope_all_chat_administrators.py @@ -1,6 +1,6 @@ from __future__ import annotations -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal from ..enums import BotCommandScopeType from .bot_command_scope import BotCommandScope @@ -13,5 +13,25 @@ class BotCommandScopeAllChatAdministrators(BotCommandScope): Source: https://core.telegram.org/bots/api#botcommandscopeallchatadministrators """ - type: str = Field(BotCommandScopeType.ALL_CHAT_ADMINISTRATORS, const=True) + type: Literal[ + BotCommandScopeType.ALL_CHAT_ADMINISTRATORS + ] = BotCommandScopeType.ALL_CHAT_ADMINISTRATORS """Scope type, must be *all_chat_administrators*""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[ + BotCommandScopeType.ALL_CHAT_ADMINISTRATORS + ] = BotCommandScopeType.ALL_CHAT_ADMINISTRATORS, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(type=type, **__pydantic_kwargs) diff --git a/aiogram/types/bot_command_scope_all_group_chats.py b/aiogram/types/bot_command_scope_all_group_chats.py index f9675ad6..a17a51da 100644 --- a/aiogram/types/bot_command_scope_all_group_chats.py +++ b/aiogram/types/bot_command_scope_all_group_chats.py @@ -1,6 +1,6 @@ from __future__ import annotations -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal from ..enums import BotCommandScopeType from .bot_command_scope import BotCommandScope @@ -13,5 +13,23 @@ class BotCommandScopeAllGroupChats(BotCommandScope): Source: https://core.telegram.org/bots/api#botcommandscopeallgroupchats """ - type: str = Field(BotCommandScopeType.ALL_GROUP_CHATS, const=True) + type: Literal[BotCommandScopeType.ALL_GROUP_CHATS] = BotCommandScopeType.ALL_GROUP_CHATS """Scope type, must be *all_group_chats*""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[ + BotCommandScopeType.ALL_GROUP_CHATS + ] = BotCommandScopeType.ALL_GROUP_CHATS, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(type=type, **__pydantic_kwargs) diff --git a/aiogram/types/bot_command_scope_all_private_chats.py b/aiogram/types/bot_command_scope_all_private_chats.py index f13e2866..54d406ff 100644 --- a/aiogram/types/bot_command_scope_all_private_chats.py +++ b/aiogram/types/bot_command_scope_all_private_chats.py @@ -1,6 +1,6 @@ from __future__ import annotations -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal from ..enums import BotCommandScopeType from .bot_command_scope import BotCommandScope @@ -13,5 +13,23 @@ class BotCommandScopeAllPrivateChats(BotCommandScope): Source: https://core.telegram.org/bots/api#botcommandscopeallprivatechats """ - type: str = Field(BotCommandScopeType.ALL_PRIVATE_CHATS, const=True) + type: Literal[BotCommandScopeType.ALL_PRIVATE_CHATS] = BotCommandScopeType.ALL_PRIVATE_CHATS """Scope type, must be *all_private_chats*""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[ + BotCommandScopeType.ALL_PRIVATE_CHATS + ] = BotCommandScopeType.ALL_PRIVATE_CHATS, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(type=type, **__pydantic_kwargs) diff --git a/aiogram/types/bot_command_scope_chat.py b/aiogram/types/bot_command_scope_chat.py index d96bc6f4..f36c4a1d 100644 --- a/aiogram/types/bot_command_scope_chat.py +++ b/aiogram/types/bot_command_scope_chat.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import Union - -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal, Union from ..enums import BotCommandScopeType from .bot_command_scope import BotCommandScope @@ -15,7 +13,24 @@ class BotCommandScopeChat(BotCommandScope): Source: https://core.telegram.org/bots/api#botcommandscopechat """ - type: str = Field(BotCommandScopeType.CHAT, const=True) + type: Literal[BotCommandScopeType.CHAT] = BotCommandScopeType.CHAT """Scope type, must be *chat*""" chat_id: Union[int, str] """Unique identifier for the target chat or username of the target supergroup (in the format :code:`@supergroupusername`)""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[BotCommandScopeType.CHAT] = BotCommandScopeType.CHAT, + chat_id: Union[int, str], + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(type=type, chat_id=chat_id, **__pydantic_kwargs) diff --git a/aiogram/types/bot_command_scope_chat_administrators.py b/aiogram/types/bot_command_scope_chat_administrators.py index 824dc5a1..8757e98c 100644 --- a/aiogram/types/bot_command_scope_chat_administrators.py +++ b/aiogram/types/bot_command_scope_chat_administrators.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import Union - -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal, Union from ..enums import BotCommandScopeType from .bot_command_scope import BotCommandScope @@ -15,7 +13,28 @@ class BotCommandScopeChatAdministrators(BotCommandScope): Source: https://core.telegram.org/bots/api#botcommandscopechatadministrators """ - type: str = Field(BotCommandScopeType.CHAT_ADMINISTRATORS, const=True) + type: Literal[ + BotCommandScopeType.CHAT_ADMINISTRATORS + ] = BotCommandScopeType.CHAT_ADMINISTRATORS """Scope type, must be *chat_administrators*""" chat_id: Union[int, str] """Unique identifier for the target chat or username of the target supergroup (in the format :code:`@supergroupusername`)""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[ + BotCommandScopeType.CHAT_ADMINISTRATORS + ] = BotCommandScopeType.CHAT_ADMINISTRATORS, + chat_id: Union[int, str], + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(type=type, chat_id=chat_id, **__pydantic_kwargs) diff --git a/aiogram/types/bot_command_scope_chat_member.py b/aiogram/types/bot_command_scope_chat_member.py index e9fb0dda..4d20b1f3 100644 --- a/aiogram/types/bot_command_scope_chat_member.py +++ b/aiogram/types/bot_command_scope_chat_member.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import Union - -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal, Union from ..enums import BotCommandScopeType from .bot_command_scope import BotCommandScope @@ -15,9 +13,27 @@ class BotCommandScopeChatMember(BotCommandScope): Source: https://core.telegram.org/bots/api#botcommandscopechatmember """ - type: str = Field(BotCommandScopeType.CHAT_MEMBER, const=True) + type: Literal[BotCommandScopeType.CHAT_MEMBER] = BotCommandScopeType.CHAT_MEMBER """Scope type, must be *chat_member*""" chat_id: Union[int, str] """Unique identifier for the target chat or username of the target supergroup (in the format :code:`@supergroupusername`)""" user_id: int """Unique identifier of the target user""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[BotCommandScopeType.CHAT_MEMBER] = BotCommandScopeType.CHAT_MEMBER, + chat_id: Union[int, str], + user_id: int, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(type=type, chat_id=chat_id, user_id=user_id, **__pydantic_kwargs) diff --git a/aiogram/types/bot_command_scope_default.py b/aiogram/types/bot_command_scope_default.py index 79825631..33b7a0ca 100644 --- a/aiogram/types/bot_command_scope_default.py +++ b/aiogram/types/bot_command_scope_default.py @@ -1,6 +1,6 @@ from __future__ import annotations -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal from ..enums import BotCommandScopeType from .bot_command_scope import BotCommandScope @@ -13,5 +13,21 @@ class BotCommandScopeDefault(BotCommandScope): Source: https://core.telegram.org/bots/api#botcommandscopedefault """ - type: str = Field(BotCommandScopeType.DEFAULT, const=True) + type: Literal[BotCommandScopeType.DEFAULT] = BotCommandScopeType.DEFAULT """Scope type, must be *default*""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[BotCommandScopeType.DEFAULT] = BotCommandScopeType.DEFAULT, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(type=type, **__pydantic_kwargs) diff --git a/aiogram/types/bot_description.py b/aiogram/types/bot_description.py index a69d492f..5d8646dd 100644 --- a/aiogram/types/bot_description.py +++ b/aiogram/types/bot_description.py @@ -1,3 +1,5 @@ +from typing import TYPE_CHECKING, Any + from aiogram.types import TelegramObject @@ -10,3 +12,14 @@ class BotDescription(TelegramObject): description: str """The bot's description""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__(__pydantic__self__, *, description: str, **__pydantic_kwargs: Any) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(description=description, **__pydantic_kwargs) diff --git a/aiogram/types/bot_name.py b/aiogram/types/bot_name.py index 103f1fde..f2dc0745 100644 --- a/aiogram/types/bot_name.py +++ b/aiogram/types/bot_name.py @@ -1,3 +1,5 @@ +from typing import TYPE_CHECKING, Any + from .base import TelegramObject @@ -10,3 +12,14 @@ class BotName(TelegramObject): name: str """The bot's name""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__(__pydantic__self__, *, name: str, **__pydantic_kwargs: Any) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(name=name, **__pydantic_kwargs) diff --git a/aiogram/types/bot_short_description.py b/aiogram/types/bot_short_description.py index 46d5c1c3..86b11cf4 100644 --- a/aiogram/types/bot_short_description.py +++ b/aiogram/types/bot_short_description.py @@ -1,3 +1,5 @@ +from typing import TYPE_CHECKING, Any + from aiogram.types import TelegramObject @@ -10,3 +12,16 @@ class BotShortDescription(TelegramObject): short_description: str """The bot's short description""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, short_description: str, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(short_description=short_description, **__pydantic_kwargs) diff --git a/aiogram/types/callback_query.py b/aiogram/types/callback_query.py index 5812bb13..f6e95b1c 100644 --- a/aiogram/types/callback_query.py +++ b/aiogram/types/callback_query.py @@ -36,6 +36,37 @@ class CallbackQuery(TelegramObject): game_short_name: Optional[str] = None """*Optional*. Short name of a `Game `_ to be returned, serves as the unique identifier for the game""" + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + id: str, + from_user: User, + chat_instance: str, + message: Optional[Message] = None, + inline_message_id: Optional[str] = None, + data: Optional[str] = None, + game_short_name: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + id=id, + from_user=from_user, + chat_instance=chat_instance, + message=message, + inline_message_id=inline_message_id, + data=data, + game_short_name=game_short_name, + **__pydantic_kwargs, + ) + def answer( self, text: Optional[str] = None, @@ -74,4 +105,4 @@ class CallbackQuery(TelegramObject): url=url, cache_time=cache_time, **kwargs, - ) + ).as_(self._bot) diff --git a/aiogram/types/chat.py b/aiogram/types/chat.py index 4bb6d688..d2ef2487 100644 --- a/aiogram/types/chat.py +++ b/aiogram/types/chat.py @@ -4,6 +4,7 @@ import datetime from typing import TYPE_CHECKING, Any, List, Optional, Union from .base import TelegramObject +from .custom import DateTime if TYPE_CHECKING: from ..methods import ( @@ -33,6 +34,7 @@ if TYPE_CHECKING: UnbanChatMember, UnbanChatSenderChat, UnpinAllChatMessages, + UnpinAllGeneralForumTopicMessages, UnpinChatMessage, ) from .chat_location import ChatLocation @@ -69,6 +71,8 @@ class Chat(TelegramObject): """*Optional*. If non-empty, the list of all `active chat usernames `_; for private chats, supergroups and channels. Returned only in :class:`aiogram.methods.get_chat.GetChat`.""" emoji_status_custom_emoji_id: Optional[str] = None """*Optional*. Custom emoji identifier of emoji status of the other party in a private chat. Returned only in :class:`aiogram.methods.get_chat.GetChat`.""" + emoji_status_expiration_date: Optional[DateTime] = None + """*Optional*. Expiration date of the emoji status of the other party in a private chat in Unix time, if any. Returned only in :class:`aiogram.methods.get_chat.GetChat`.""" bio: Optional[str] = None """*Optional*. Bio of the other party in a private chat. Returned only in :class:`aiogram.methods.get_chat.GetChat`.""" has_private_forwards: Optional[bool] = None @@ -106,6 +110,81 @@ class Chat(TelegramObject): location: Optional[ChatLocation] = None """*Optional*. For supergroups, the location to which the supergroup is connected. Returned only in :class:`aiogram.methods.get_chat.GetChat`.""" + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + id: int, + type: str, + title: Optional[str] = None, + username: Optional[str] = None, + first_name: Optional[str] = None, + last_name: Optional[str] = None, + is_forum: Optional[bool] = None, + photo: Optional[ChatPhoto] = None, + active_usernames: Optional[List[str]] = None, + emoji_status_custom_emoji_id: Optional[str] = None, + emoji_status_expiration_date: Optional[DateTime] = None, + bio: Optional[str] = None, + has_private_forwards: Optional[bool] = None, + has_restricted_voice_and_video_messages: Optional[bool] = None, + join_to_send_messages: Optional[bool] = None, + join_by_request: Optional[bool] = None, + description: Optional[str] = None, + invite_link: Optional[str] = None, + pinned_message: Optional[Message] = None, + permissions: Optional[ChatPermissions] = None, + slow_mode_delay: Optional[int] = None, + message_auto_delete_time: Optional[int] = None, + has_aggressive_anti_spam_enabled: Optional[bool] = None, + has_hidden_members: Optional[bool] = None, + has_protected_content: Optional[bool] = None, + sticker_set_name: Optional[str] = None, + can_set_sticker_set: Optional[bool] = None, + linked_chat_id: Optional[int] = None, + location: Optional[ChatLocation] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + id=id, + type=type, + title=title, + username=username, + first_name=first_name, + last_name=last_name, + is_forum=is_forum, + photo=photo, + active_usernames=active_usernames, + emoji_status_custom_emoji_id=emoji_status_custom_emoji_id, + emoji_status_expiration_date=emoji_status_expiration_date, + bio=bio, + has_private_forwards=has_private_forwards, + has_restricted_voice_and_video_messages=has_restricted_voice_and_video_messages, + join_to_send_messages=join_to_send_messages, + join_by_request=join_by_request, + description=description, + invite_link=invite_link, + pinned_message=pinned_message, + permissions=permissions, + slow_mode_delay=slow_mode_delay, + message_auto_delete_time=message_auto_delete_time, + has_aggressive_anti_spam_enabled=has_aggressive_anti_spam_enabled, + has_hidden_members=has_hidden_members, + has_protected_content=has_protected_content, + sticker_set_name=sticker_set_name, + can_set_sticker_set=can_set_sticker_set, + linked_chat_id=linked_chat_id, + location=location, + **__pydantic_kwargs, + ) + @property def shifted_id(self) -> int: """ @@ -164,7 +243,7 @@ class Chat(TelegramObject): chat_id=self.id, sender_chat_id=sender_chat_id, **kwargs, - ) + ).as_(self._bot) def unban_sender_chat( self, @@ -193,7 +272,7 @@ class Chat(TelegramObject): chat_id=self.id, sender_chat_id=sender_chat_id, **kwargs, - ) + ).as_(self._bot) def get_administrators( self, @@ -219,7 +298,7 @@ class Chat(TelegramObject): return GetChatAdministrators( chat_id=self.id, **kwargs, - ) + ).as_(self._bot) def delete_message( self, @@ -266,7 +345,7 @@ class Chat(TelegramObject): chat_id=self.id, message_id=message_id, **kwargs, - ) + ).as_(self._bot) def revoke_invite_link( self, @@ -295,7 +374,7 @@ class Chat(TelegramObject): chat_id=self.id, invite_link=invite_link, **kwargs, - ) + ).as_(self._bot) def edit_invite_link( self, @@ -336,7 +415,7 @@ class Chat(TelegramObject): member_limit=member_limit, creates_join_request=creates_join_request, **kwargs, - ) + ).as_(self._bot) def create_invite_link( self, @@ -374,7 +453,7 @@ class Chat(TelegramObject): member_limit=member_limit, creates_join_request=creates_join_request, **kwargs, - ) + ).as_(self._bot) def export_invite_link( self, @@ -402,7 +481,7 @@ class Chat(TelegramObject): return ExportChatInviteLink( chat_id=self.id, **kwargs, - ) + ).as_(self._bot) def do( self, @@ -438,7 +517,7 @@ class Chat(TelegramObject): action=action, message_thread_id=message_thread_id, **kwargs, - ) + ).as_(self._bot) def delete_sticker_set( self, @@ -464,7 +543,7 @@ class Chat(TelegramObject): return DeleteChatStickerSet( chat_id=self.id, **kwargs, - ) + ).as_(self._bot) def set_sticker_set( self, @@ -493,7 +572,7 @@ class Chat(TelegramObject): chat_id=self.id, sticker_set_name=sticker_set_name, **kwargs, - ) + ).as_(self._bot) def get_member( self, @@ -522,7 +601,7 @@ class Chat(TelegramObject): chat_id=self.id, user_id=user_id, **kwargs, - ) + ).as_(self._bot) def get_member_count( self, @@ -548,7 +627,7 @@ class Chat(TelegramObject): return GetChatMemberCount( chat_id=self.id, **kwargs, - ) + ).as_(self._bot) def leave( self, @@ -574,7 +653,7 @@ class Chat(TelegramObject): return LeaveChat( chat_id=self.id, **kwargs, - ) + ).as_(self._bot) def unpin_all_messages( self, @@ -600,7 +679,7 @@ class Chat(TelegramObject): return UnpinAllChatMessages( chat_id=self.id, **kwargs, - ) + ).as_(self._bot) def unpin_message( self, @@ -629,7 +708,7 @@ class Chat(TelegramObject): chat_id=self.id, message_id=message_id, **kwargs, - ) + ).as_(self._bot) def pin_message( self, @@ -661,7 +740,7 @@ class Chat(TelegramObject): message_id=message_id, disable_notification=disable_notification, **kwargs, - ) + ).as_(self._bot) def set_administrator_custom_title( self, @@ -693,7 +772,7 @@ class Chat(TelegramObject): user_id=user_id, custom_title=custom_title, **kwargs, - ) + ).as_(self._bot) def set_permissions( self, @@ -725,22 +804,25 @@ class Chat(TelegramObject): permissions=permissions, use_independent_chat_permissions=use_independent_chat_permissions, **kwargs, - ) + ).as_(self._bot) def promote( self, user_id: int, is_anonymous: Optional[bool] = None, can_manage_chat: Optional[bool] = None, - can_post_messages: Optional[bool] = None, - can_edit_messages: Optional[bool] = None, can_delete_messages: Optional[bool] = None, can_manage_video_chats: Optional[bool] = None, can_restrict_members: Optional[bool] = None, can_promote_members: Optional[bool] = None, can_change_info: Optional[bool] = None, can_invite_users: Optional[bool] = None, + can_post_messages: Optional[bool] = None, + can_edit_messages: Optional[bool] = None, can_pin_messages: Optional[bool] = None, + can_post_stories: Optional[bool] = None, + can_edit_stories: Optional[bool] = None, + can_delete_stories: Optional[bool] = None, can_manage_topics: Optional[bool] = None, **kwargs: Any, ) -> PromoteChatMember: @@ -756,16 +838,19 @@ class Chat(TelegramObject): :param user_id: Unique identifier of the target user :param is_anonymous: Pass :code:`True` if the administrator's presence in the chat is hidden - :param can_manage_chat: Pass :code:`True` if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege - :param can_post_messages: Pass :code:`True` if the administrator can create channel posts, channels only - :param can_edit_messages: Pass :code:`True` if the administrator can edit messages of other users and can pin messages, channels only + :param can_manage_chat: Pass :code:`True` if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege :param can_delete_messages: Pass :code:`True` if the administrator can delete messages of other users :param can_manage_video_chats: Pass :code:`True` if the administrator can manage video chats - :param can_restrict_members: Pass :code:`True` if the administrator can restrict, ban or unban chat members + :param can_restrict_members: Pass :code:`True` if the administrator can restrict, ban or unban chat members, or access supergroup statistics :param can_promote_members: Pass :code:`True` if the administrator can add new administrators with a subset of their own privileges or demote administrators that they have promoted, directly or indirectly (promoted by administrators that were appointed by him) :param can_change_info: Pass :code:`True` if the administrator can change chat title, photo and other settings :param can_invite_users: Pass :code:`True` if the administrator can invite new users to the chat + :param can_post_messages: Pass :code:`True` if the administrator can post messages in the channel, or access channel statistics; channels only + :param can_edit_messages: Pass :code:`True` if the administrator can edit messages of other users and can pin messages; channels only :param can_pin_messages: Pass :code:`True` if the administrator can pin messages, supergroups only + :param can_post_stories: Pass :code:`True` if the administrator can post stories in the channel; channels only + :param can_edit_stories: Pass :code:`True` if the administrator can edit stories posted by other users; channels only + :param can_delete_stories: Pass :code:`True` if the administrator can delete stories posted by other users; channels only :param can_manage_topics: Pass :code:`True` if the user is allowed to create, rename, close, and reopen forum topics, supergroups only :return: instance of method :class:`aiogram.methods.promote_chat_member.PromoteChatMember` """ @@ -779,18 +864,21 @@ class Chat(TelegramObject): user_id=user_id, is_anonymous=is_anonymous, can_manage_chat=can_manage_chat, - can_post_messages=can_post_messages, - can_edit_messages=can_edit_messages, can_delete_messages=can_delete_messages, can_manage_video_chats=can_manage_video_chats, can_restrict_members=can_restrict_members, can_promote_members=can_promote_members, can_change_info=can_change_info, can_invite_users=can_invite_users, + can_post_messages=can_post_messages, + can_edit_messages=can_edit_messages, can_pin_messages=can_pin_messages, + can_post_stories=can_post_stories, + can_edit_stories=can_edit_stories, + can_delete_stories=can_delete_stories, can_manage_topics=can_manage_topics, **kwargs, - ) + ).as_(self._bot) def restrict( self, @@ -813,7 +901,7 @@ class Chat(TelegramObject): :param user_id: Unique identifier of the target user :param permissions: A JSON-serialized object for new user permissions :param use_independent_chat_permissions: Pass :code:`True` if chat permissions are set independently. Otherwise, the *can_send_other_messages* and *can_add_web_page_previews* permissions will imply the *can_send_messages*, *can_send_audios*, *can_send_documents*, *can_send_photos*, *can_send_videos*, *can_send_video_notes*, and *can_send_voice_notes* permissions; the *can_send_polls* permission will imply the *can_send_messages* permission. - :param until_date: Date when restrictions will be lifted for the user, unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever + :param until_date: Date when restrictions will be lifted for the user; Unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever :return: instance of method :class:`aiogram.methods.restrict_chat_member.RestrictChatMember` """ # DO NOT EDIT MANUALLY!!! @@ -828,7 +916,7 @@ class Chat(TelegramObject): use_independent_chat_permissions=use_independent_chat_permissions, until_date=until_date, **kwargs, - ) + ).as_(self._bot) def unban( self, @@ -860,7 +948,7 @@ class Chat(TelegramObject): user_id=user_id, only_if_banned=only_if_banned, **kwargs, - ) + ).as_(self._bot) def ban( self, @@ -880,7 +968,7 @@ class Chat(TelegramObject): Source: https://core.telegram.org/bots/api#banchatmember :param user_id: Unique identifier of the target user - :param until_date: Date when the user will be unbanned, unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only. + :param until_date: Date when the user will be unbanned; Unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only. :param revoke_messages: Pass :code:`True` to delete all messages from the chat for the user that is being removed. If :code:`False`, the user will be able to see messages in the group that were sent before the user was removed. Always :code:`True` for supergroups and channels. :return: instance of method :class:`aiogram.methods.ban_chat_member.BanChatMember` """ @@ -895,7 +983,7 @@ class Chat(TelegramObject): until_date=until_date, revoke_messages=revoke_messages, **kwargs, - ) + ).as_(self._bot) def set_description( self, @@ -924,7 +1012,7 @@ class Chat(TelegramObject): chat_id=self.id, description=description, **kwargs, - ) + ).as_(self._bot) def set_title( self, @@ -953,7 +1041,7 @@ class Chat(TelegramObject): chat_id=self.id, title=title, **kwargs, - ) + ).as_(self._bot) def delete_photo( self, @@ -979,7 +1067,7 @@ class Chat(TelegramObject): return DeleteChatPhoto( chat_id=self.id, **kwargs, - ) + ).as_(self._bot) def set_photo( self, @@ -1008,4 +1096,30 @@ class Chat(TelegramObject): chat_id=self.id, photo=photo, **kwargs, - ) + ).as_(self._bot) + + def unpin_all_general_forum_topic_messages( + self, + **kwargs: Any, + ) -> UnpinAllGeneralForumTopicMessages: + """ + Shortcut for method :class:`aiogram.methods.unpin_all_general_forum_topic_messages.UnpinAllGeneralForumTopicMessages` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to clear the list of pinned messages in a General forum topic. The bot must be an administrator in the chat for this to work and must have the *can_pin_messages* administrator right in the supergroup. Returns :code:`True` on success. + + Source: https://core.telegram.org/bots/api#unpinallgeneralforumtopicmessages + + :return: instance of method :class:`aiogram.methods.unpin_all_general_forum_topic_messages.UnpinAllGeneralForumTopicMessages` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import UnpinAllGeneralForumTopicMessages + + return UnpinAllGeneralForumTopicMessages( + chat_id=self.id, + **kwargs, + ).as_(self._bot) diff --git a/aiogram/types/chat_administrator_rights.py b/aiogram/types/chat_administrator_rights.py index 23519ced..cccda5b2 100644 --- a/aiogram/types/chat_administrator_rights.py +++ b/aiogram/types/chat_administrator_rights.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramObject @@ -18,13 +18,13 @@ class ChatAdministratorRights(TelegramObject): is_anonymous: bool """:code:`True`, if the user's presence in the chat is hidden""" can_manage_chat: bool - """:code:`True`, if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege""" + """:code:`True`, if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege""" can_delete_messages: bool """:code:`True`, if the administrator can delete messages of other users""" can_manage_video_chats: bool """:code:`True`, if the administrator can manage video chats""" can_restrict_members: bool - """:code:`True`, if the administrator can restrict, ban or unban chat members""" + """:code:`True`, if the administrator can restrict, ban or unban chat members, or access supergroup statistics""" can_promote_members: bool """:code:`True`, if the administrator can add new administrators with a subset of their own privileges or demote administrators that they have promoted, directly or indirectly (promoted by administrators that were appointed by the user)""" can_change_info: bool @@ -32,10 +32,63 @@ class ChatAdministratorRights(TelegramObject): can_invite_users: bool """:code:`True`, if the user is allowed to invite new users to the chat""" can_post_messages: Optional[bool] = None - """*Optional*. :code:`True`, if the administrator can post in the channel; channels only""" + """*Optional*. :code:`True`, if the administrator can post messages in the channel, or access channel statistics; channels only""" can_edit_messages: Optional[bool] = None """*Optional*. :code:`True`, if the administrator can edit messages of other users and can pin messages; channels only""" can_pin_messages: Optional[bool] = None """*Optional*. :code:`True`, if the user is allowed to pin messages; groups and supergroups only""" + can_post_stories: Optional[bool] = None + """*Optional*. :code:`True`, if the administrator can post stories in the channel; channels only""" + can_edit_stories: Optional[bool] = None + """*Optional*. :code:`True`, if the administrator can edit stories posted by other users; channels only""" + can_delete_stories: Optional[bool] = None + """*Optional*. :code:`True`, if the administrator can delete stories posted by other users; channels only""" can_manage_topics: Optional[bool] = None """*Optional*. :code:`True`, if the user is allowed to create, rename, close, and reopen forum topics; supergroups only""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + is_anonymous: bool, + can_manage_chat: bool, + can_delete_messages: bool, + can_manage_video_chats: bool, + can_restrict_members: bool, + can_promote_members: bool, + can_change_info: bool, + can_invite_users: bool, + can_post_messages: Optional[bool] = None, + can_edit_messages: Optional[bool] = None, + can_pin_messages: Optional[bool] = None, + can_post_stories: Optional[bool] = None, + can_edit_stories: Optional[bool] = None, + can_delete_stories: Optional[bool] = None, + can_manage_topics: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + is_anonymous=is_anonymous, + can_manage_chat=can_manage_chat, + can_delete_messages=can_delete_messages, + can_manage_video_chats=can_manage_video_chats, + can_restrict_members=can_restrict_members, + can_promote_members=can_promote_members, + can_change_info=can_change_info, + can_invite_users=can_invite_users, + can_post_messages=can_post_messages, + can_edit_messages=can_edit_messages, + can_pin_messages=can_pin_messages, + can_post_stories=can_post_stories, + can_edit_stories=can_edit_stories, + can_delete_stories=can_delete_stories, + can_manage_topics=can_manage_topics, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/chat_invite_link.py b/aiogram/types/chat_invite_link.py index 7476f9dc..7817c23d 100644 --- a/aiogram/types/chat_invite_link.py +++ b/aiogram/types/chat_invite_link.py @@ -1,9 +1,9 @@ from __future__ import annotations -import datetime -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramObject +from .custom import DateTime if TYPE_CHECKING: from .user import User @@ -28,9 +28,44 @@ class ChatInviteLink(TelegramObject): """:code:`True`, if the link is revoked""" name: Optional[str] = None """*Optional*. Invite link name""" - expire_date: Optional[datetime.datetime] = None + expire_date: Optional[DateTime] = None """*Optional*. Point in time (Unix timestamp) when the link will expire or has been expired""" member_limit: Optional[int] = None """*Optional*. The maximum number of users that can be members of the chat simultaneously after joining the chat via this invite link; 1-99999""" pending_join_request_count: Optional[int] = None """*Optional*. Number of pending join requests created using this link""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + invite_link: str, + creator: User, + creates_join_request: bool, + is_primary: bool, + is_revoked: bool, + name: Optional[str] = None, + expire_date: Optional[DateTime] = None, + member_limit: Optional[int] = None, + pending_join_request_count: Optional[int] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + invite_link=invite_link, + creator=creator, + creates_join_request=creates_join_request, + is_primary=is_primary, + is_revoked=is_revoked, + name=name, + expire_date=expire_date, + member_limit=member_limit, + pending_join_request_count=pending_join_request_count, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/chat_join_request.py b/aiogram/types/chat_join_request.py index ca4f8bb7..b8ba33d2 100644 --- a/aiogram/types/chat_join_request.py +++ b/aiogram/types/chat_join_request.py @@ -1,18 +1,53 @@ from __future__ import annotations import datetime -from typing import TYPE_CHECKING, Any, Optional +from typing import TYPE_CHECKING, Any, List, Optional, Union from pydantic import Field -from .base import TelegramObject - -if TYPE_CHECKING: - from ..methods import ApproveChatJoinRequest, DeclineChatJoinRequest +from .base import ( + UNSET_DISABLE_WEB_PAGE_PREVIEW, + UNSET_PARSE_MODE, + UNSET_PROTECT_CONTENT, + TelegramObject, +) +from .custom import DateTime if TYPE_CHECKING: + from ..methods import ( + ApproveChatJoinRequest, + DeclineChatJoinRequest, + SendAnimation, + SendAudio, + SendContact, + SendDice, + SendDocument, + SendGame, + SendInvoice, + SendLocation, + SendMediaGroup, + SendMessage, + SendPhoto, + SendPoll, + SendSticker, + SendVenue, + SendVideo, + SendVideoNote, + SendVoice, + ) from .chat import Chat from .chat_invite_link import ChatInviteLink + from .force_reply import ForceReply + from .inline_keyboard_markup import InlineKeyboardMarkup + from .input_file import InputFile + from .input_media_audio import InputMediaAudio + from .input_media_document import InputMediaDocument + from .input_media_photo import InputMediaPhoto + from .input_media_video import InputMediaVideo + from .labeled_price import LabeledPrice + from .message_entity import MessageEntity + from .reply_keyboard_markup import ReplyKeyboardMarkup + from .reply_keyboard_remove import ReplyKeyboardRemove from .user import User @@ -28,14 +63,43 @@ class ChatJoinRequest(TelegramObject): from_user: User = Field(..., alias="from") """User that sent the join request""" user_chat_id: int - """Identifier of a private chat with the user who sent the join request. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot can use this identifier for 24 hours to send messages until the join request is processed, assuming no other administrator contacted the user.""" - date: datetime.datetime + """Identifier of a private chat with the user who sent the join request. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot can use this identifier for 5 minutes to send messages until the join request is processed, assuming no other administrator contacted the user.""" + date: DateTime """Date the request was sent in Unix time""" bio: Optional[str] = None """*Optional*. Bio of the user.""" invite_link: Optional[ChatInviteLink] = None """*Optional*. Chat invite link that was used by the user to send the join request""" + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat: Chat, + from_user: User, + user_chat_id: int, + date: DateTime, + bio: Optional[str] = None, + invite_link: Optional[ChatInviteLink] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat=chat, + from_user=from_user, + user_chat_id=user_chat_id, + date=date, + bio=bio, + invite_link=invite_link, + **__pydantic_kwargs, + ) + def approve( self, **kwargs: Any, @@ -62,7 +126,7 @@ class ChatJoinRequest(TelegramObject): chat_id=self.chat.id, user_id=self.from_user.id, **kwargs, - ) + ).as_(self._bot) def decline( self, @@ -90,4 +154,2194 @@ class ChatJoinRequest(TelegramObject): chat_id=self.chat.id, user_id=self.from_user.id, **kwargs, - ) + ).as_(self._bot) + + def answer( + self, + text: str, + message_thread_id: Optional[int] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + entities: Optional[List[MessageEntity]] = None, + disable_web_page_preview: Optional[bool] = UNSET_DISABLE_WEB_PAGE_PREVIEW, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendMessage: + """ + Shortcut for method :class:`aiogram.methods.send_message.SendMessage` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send text messages. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendmessage + + :param text: Text of the message to be sent, 1-4096 characters after entities parsing + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param parse_mode: Mode for parsing entities in the message text. See `formatting options `_ for more details. + :param entities: A JSON-serialized list of special entities that appear in message text, which can be specified instead of *parse_mode* + :param disable_web_page_preview: Disables link previews for links in this 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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_message.SendMessage` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendMessage + + return SendMessage( + chat_id=self.chat.id, + text=text, + message_thread_id=message_thread_id, + parse_mode=parse_mode, + entities=entities, + disable_web_page_preview=disable_web_page_preview, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_pm( + self, + text: str, + message_thread_id: Optional[int] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + entities: Optional[List[MessageEntity]] = None, + disable_web_page_preview: Optional[bool] = UNSET_DISABLE_WEB_PAGE_PREVIEW, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendMessage: + """ + Shortcut for method :class:`aiogram.methods.send_message.SendMessage` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send text messages. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendmessage + + :param text: Text of the message to be sent, 1-4096 characters after entities parsing + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param parse_mode: Mode for parsing entities in the message text. See `formatting options `_ for more details. + :param entities: A JSON-serialized list of special entities that appear in message text, which can be specified instead of *parse_mode* + :param disable_web_page_preview: Disables link previews for links in this 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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_message.SendMessage` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendMessage + + return SendMessage( + chat_id=self.user_chat_id, + text=text, + message_thread_id=message_thread_id, + parse_mode=parse_mode, + entities=entities, + disable_web_page_preview=disable_web_page_preview, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_animation( + self, + animation: Union[InputFile, str], + message_thread_id: Optional[int] = None, + duration: Optional[int] = None, + width: Optional[int] = None, + height: Optional[int] = None, + thumbnail: Optional[Union[InputFile, str]] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + has_spoiler: Optional[bool] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendAnimation: + """ + Shortcut for method :class:`aiogram.methods.send_animation.SendAnimation` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send animation files (GIF or H.264/MPEG-4 AVC video without sound). On success, the sent :class:`aiogram.types.message.Message` is returned. Bots can currently send animation files of up to 50 MB in size, this limit may be changed in the future. + + Source: https://core.telegram.org/bots/api#sendanimation + + :param animation: Animation to send. Pass a file_id as String to send an animation that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an animation from the Internet, or upload a new animation using multipart/form-data. :ref:`More information on Sending Files » ` + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param duration: Duration of sent animation in seconds + :param width: Animation width + :param height: Animation height + :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 caption: Animation caption (may also be used when resending animation by *file_id*), 0-1024 characters after entities parsing + :param parse_mode: Mode for parsing entities in the animation caption. See `formatting options `_ for more details. + :param caption_entities: A JSON-serialized list of special entities that appear in the caption, which can be specified instead of *parse_mode* + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_animation.SendAnimation` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendAnimation + + return SendAnimation( + chat_id=self.chat.id, + animation=animation, + message_thread_id=message_thread_id, + duration=duration, + width=width, + height=height, + thumbnail=thumbnail, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + has_spoiler=has_spoiler, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_animation_pm( + self, + animation: Union[InputFile, str], + message_thread_id: Optional[int] = None, + duration: Optional[int] = None, + width: Optional[int] = None, + height: Optional[int] = None, + thumbnail: Optional[Union[InputFile, str]] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + has_spoiler: Optional[bool] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendAnimation: + """ + Shortcut for method :class:`aiogram.methods.send_animation.SendAnimation` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send animation files (GIF or H.264/MPEG-4 AVC video without sound). On success, the sent :class:`aiogram.types.message.Message` is returned. Bots can currently send animation files of up to 50 MB in size, this limit may be changed in the future. + + Source: https://core.telegram.org/bots/api#sendanimation + + :param animation: Animation to send. Pass a file_id as String to send an animation that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an animation from the Internet, or upload a new animation using multipart/form-data. :ref:`More information on Sending Files » ` + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param duration: Duration of sent animation in seconds + :param width: Animation width + :param height: Animation height + :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 caption: Animation caption (may also be used when resending animation by *file_id*), 0-1024 characters after entities parsing + :param parse_mode: Mode for parsing entities in the animation caption. See `formatting options `_ for more details. + :param caption_entities: A JSON-serialized list of special entities that appear in the caption, which can be specified instead of *parse_mode* + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_animation.SendAnimation` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendAnimation + + return SendAnimation( + chat_id=self.user_chat_id, + animation=animation, + message_thread_id=message_thread_id, + duration=duration, + width=width, + height=height, + thumbnail=thumbnail, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + has_spoiler=has_spoiler, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_audio( + self, + audio: Union[InputFile, str], + message_thread_id: Optional[int] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + duration: Optional[int] = None, + performer: Optional[str] = None, + title: Optional[str] = None, + thumbnail: Optional[Union[InputFile, str]] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendAudio: + """ + Shortcut for method :class:`aiogram.methods.send_audio.SendAudio` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send audio files, if you want Telegram clients to display them in the music player. Your audio must be in the .MP3 or .M4A format. On success, the sent :class:`aiogram.types.message.Message` is returned. Bots can currently send audio files of up to 50 MB in size, this limit may be changed in the future. + For sending voice messages, use the :class:`aiogram.methods.send_voice.SendVoice` method instead. + + Source: https://core.telegram.org/bots/api#sendaudio + + :param audio: Audio file to send. Pass a file_id as String to send an audio file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an audio file from the Internet, or upload a new one using multipart/form-data. :ref:`More information on Sending Files » ` + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param caption: Audio caption, 0-1024 characters after entities parsing + :param parse_mode: Mode for parsing entities in the audio caption. See `formatting options `_ for more details. + :param caption_entities: A JSON-serialized list of special entities that appear in the caption, which can be specified instead of *parse_mode* + :param duration: Duration of the audio in seconds + :param performer: Performer + :param title: Track name + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_audio.SendAudio` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendAudio + + return SendAudio( + chat_id=self.chat.id, + audio=audio, + message_thread_id=message_thread_id, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + duration=duration, + performer=performer, + title=title, + thumbnail=thumbnail, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_audio_pm( + self, + audio: Union[InputFile, str], + message_thread_id: Optional[int] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + duration: Optional[int] = None, + performer: Optional[str] = None, + title: Optional[str] = None, + thumbnail: Optional[Union[InputFile, str]] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendAudio: + """ + Shortcut for method :class:`aiogram.methods.send_audio.SendAudio` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send audio files, if you want Telegram clients to display them in the music player. Your audio must be in the .MP3 or .M4A format. On success, the sent :class:`aiogram.types.message.Message` is returned. Bots can currently send audio files of up to 50 MB in size, this limit may be changed in the future. + For sending voice messages, use the :class:`aiogram.methods.send_voice.SendVoice` method instead. + + Source: https://core.telegram.org/bots/api#sendaudio + + :param audio: Audio file to send. Pass a file_id as String to send an audio file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an audio file from the Internet, or upload a new one using multipart/form-data. :ref:`More information on Sending Files » ` + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param caption: Audio caption, 0-1024 characters after entities parsing + :param parse_mode: Mode for parsing entities in the audio caption. See `formatting options `_ for more details. + :param caption_entities: A JSON-serialized list of special entities that appear in the caption, which can be specified instead of *parse_mode* + :param duration: Duration of the audio in seconds + :param performer: Performer + :param title: Track name + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_audio.SendAudio` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendAudio + + return SendAudio( + chat_id=self.user_chat_id, + audio=audio, + message_thread_id=message_thread_id, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + duration=duration, + performer=performer, + title=title, + thumbnail=thumbnail, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_contact( + self, + phone_number: str, + first_name: str, + message_thread_id: Optional[int] = None, + last_name: Optional[str] = None, + vcard: Optional[str] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendContact: + """ + Shortcut for method :class:`aiogram.methods.send_contact.SendContact` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send phone contacts. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendcontact + + :param phone_number: Contact's phone number + :param first_name: Contact's first name + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param last_name: Contact's last name + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_contact.SendContact` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendContact + + return SendContact( + chat_id=self.chat.id, + phone_number=phone_number, + first_name=first_name, + message_thread_id=message_thread_id, + last_name=last_name, + vcard=vcard, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_contact_pm( + self, + phone_number: str, + first_name: str, + message_thread_id: Optional[int] = None, + last_name: Optional[str] = None, + vcard: Optional[str] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendContact: + """ + Shortcut for method :class:`aiogram.methods.send_contact.SendContact` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send phone contacts. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendcontact + + :param phone_number: Contact's phone number + :param first_name: Contact's first name + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param last_name: Contact's last name + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_contact.SendContact` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendContact + + return SendContact( + chat_id=self.user_chat_id, + phone_number=phone_number, + first_name=first_name, + message_thread_id=message_thread_id, + last_name=last_name, + vcard=vcard, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_document( + self, + document: Union[InputFile, str], + message_thread_id: Optional[int] = None, + thumbnail: Optional[Union[InputFile, str]] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + disable_content_type_detection: Optional[bool] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendDocument: + """ + Shortcut for method :class:`aiogram.methods.send_document.SendDocument` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send general files. On success, the sent :class:`aiogram.types.message.Message` is returned. Bots can currently send files of any type of up to 50 MB in size, this limit may be changed in the future. + + Source: https://core.telegram.org/bots/api#senddocument + + :param document: File to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), 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 » ` + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :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 caption: Document caption (may also be used when resending documents by *file_id*), 0-1024 characters after entities parsing + :param parse_mode: Mode for parsing entities in the document caption. See `formatting options `_ for more details. + :param caption_entities: A JSON-serialized list of special entities that appear in the caption, which can be specified instead of *parse_mode* + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_document.SendDocument` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendDocument + + return SendDocument( + chat_id=self.chat.id, + document=document, + message_thread_id=message_thread_id, + thumbnail=thumbnail, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + disable_content_type_detection=disable_content_type_detection, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_document_pm( + self, + document: Union[InputFile, str], + message_thread_id: Optional[int] = None, + thumbnail: Optional[Union[InputFile, str]] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + disable_content_type_detection: Optional[bool] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendDocument: + """ + Shortcut for method :class:`aiogram.methods.send_document.SendDocument` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send general files. On success, the sent :class:`aiogram.types.message.Message` is returned. Bots can currently send files of any type of up to 50 MB in size, this limit may be changed in the future. + + Source: https://core.telegram.org/bots/api#senddocument + + :param document: File to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), 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 » ` + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :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 caption: Document caption (may also be used when resending documents by *file_id*), 0-1024 characters after entities parsing + :param parse_mode: Mode for parsing entities in the document caption. See `formatting options `_ for more details. + :param caption_entities: A JSON-serialized list of special entities that appear in the caption, which can be specified instead of *parse_mode* + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_document.SendDocument` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendDocument + + return SendDocument( + chat_id=self.user_chat_id, + document=document, + message_thread_id=message_thread_id, + thumbnail=thumbnail, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + disable_content_type_detection=disable_content_type_detection, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_game( + self, + game_short_name: str, + message_thread_id: Optional[int] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + **kwargs: Any, + ) -> SendGame: + """ + Shortcut for method :class:`aiogram.methods.send_game.SendGame` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send a game. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendgame + + :param game_short_name: Short name of the game, serves as the unique identifier for the game. Set up your games via `@BotFather `_. + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :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. + :return: instance of method :class:`aiogram.methods.send_game.SendGame` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendGame + + return SendGame( + chat_id=self.chat.id, + game_short_name=game_short_name, + message_thread_id=message_thread_id, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_game_pm( + self, + game_short_name: str, + message_thread_id: Optional[int] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + **kwargs: Any, + ) -> SendGame: + """ + Shortcut for method :class:`aiogram.methods.send_game.SendGame` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send a game. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendgame + + :param game_short_name: Short name of the game, serves as the unique identifier for the game. Set up your games via `@BotFather `_. + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :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. + :return: instance of method :class:`aiogram.methods.send_game.SendGame` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendGame + + return SendGame( + chat_id=self.user_chat_id, + game_short_name=game_short_name, + message_thread_id=message_thread_id, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_invoice( + self, + title: str, + description: str, + payload: str, + provider_token: str, + currency: str, + prices: List[LabeledPrice], + message_thread_id: Optional[int] = None, + max_tip_amount: Optional[int] = None, + suggested_tip_amounts: Optional[List[int]] = None, + start_parameter: Optional[str] = None, + provider_data: Optional[str] = None, + photo_url: Optional[str] = None, + photo_size: Optional[int] = None, + photo_width: Optional[int] = None, + photo_height: Optional[int] = None, + need_name: Optional[bool] = None, + need_phone_number: Optional[bool] = None, + need_email: Optional[bool] = None, + need_shipping_address: Optional[bool] = None, + send_phone_number_to_provider: Optional[bool] = None, + send_email_to_provider: Optional[bool] = None, + is_flexible: Optional[bool] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + **kwargs: Any, + ) -> SendInvoice: + """ + Shortcut for method :class:`aiogram.methods.send_invoice.SendInvoice` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send invoices. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendinvoice + + :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 provider_token: Payment provider token, obtained via `@BotFather `_ + :param currency: Three-letter ISO 4217 currency code, see `more on currencies `_ + :param prices: Price breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.) + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :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 + :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 start_parameter: Unique deep-linking parameter. If left empty, **forwarded copies** of the sent message will have a *Pay* button, allowing multiple users to pay directly from the forwarded message, using the same invoice. If non-empty, forwarded copies of the sent message will have a *URL* button with a deep link to the bot (instead of a *Pay* button), with the value used as the start parameter + :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. + :param photo_url: URL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service. People like it better when they see what they are paying for. + :param photo_size: Photo size in bytes + :param photo_width: Photo width + :param photo_height: Photo height + :param need_name: Pass :code:`True` if you require the user's full name to complete the order + :param need_phone_number: Pass :code:`True` if you require the user's phone number to complete the order + :param need_email: Pass :code:`True` if you require the user's email address to complete the order + :param need_shipping_address: Pass :code:`True` if you require the user's shipping address to complete the order + :param send_phone_number_to_provider: Pass :code:`True` if the user's phone number should be sent to provider + :param send_email_to_provider: Pass :code:`True` if the user's email address should be sent to provider + :param is_flexible: Pass :code:`True` if the final price depends on the shipping method + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :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. + :return: instance of method :class:`aiogram.methods.send_invoice.SendInvoice` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendInvoice + + return SendInvoice( + chat_id=self.chat.id, + title=title, + description=description, + payload=payload, + provider_token=provider_token, + currency=currency, + prices=prices, + message_thread_id=message_thread_id, + max_tip_amount=max_tip_amount, + suggested_tip_amounts=suggested_tip_amounts, + start_parameter=start_parameter, + provider_data=provider_data, + photo_url=photo_url, + photo_size=photo_size, + photo_width=photo_width, + photo_height=photo_height, + need_name=need_name, + need_phone_number=need_phone_number, + need_email=need_email, + need_shipping_address=need_shipping_address, + send_phone_number_to_provider=send_phone_number_to_provider, + send_email_to_provider=send_email_to_provider, + is_flexible=is_flexible, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_invoice_pm( + self, + title: str, + description: str, + payload: str, + provider_token: str, + currency: str, + prices: List[LabeledPrice], + message_thread_id: Optional[int] = None, + max_tip_amount: Optional[int] = None, + suggested_tip_amounts: Optional[List[int]] = None, + start_parameter: Optional[str] = None, + provider_data: Optional[str] = None, + photo_url: Optional[str] = None, + photo_size: Optional[int] = None, + photo_width: Optional[int] = None, + photo_height: Optional[int] = None, + need_name: Optional[bool] = None, + need_phone_number: Optional[bool] = None, + need_email: Optional[bool] = None, + need_shipping_address: Optional[bool] = None, + send_phone_number_to_provider: Optional[bool] = None, + send_email_to_provider: Optional[bool] = None, + is_flexible: Optional[bool] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + **kwargs: Any, + ) -> SendInvoice: + """ + Shortcut for method :class:`aiogram.methods.send_invoice.SendInvoice` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send invoices. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendinvoice + + :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 provider_token: Payment provider token, obtained via `@BotFather `_ + :param currency: Three-letter ISO 4217 currency code, see `more on currencies `_ + :param prices: Price breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.) + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :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 + :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 start_parameter: Unique deep-linking parameter. If left empty, **forwarded copies** of the sent message will have a *Pay* button, allowing multiple users to pay directly from the forwarded message, using the same invoice. If non-empty, forwarded copies of the sent message will have a *URL* button with a deep link to the bot (instead of a *Pay* button), with the value used as the start parameter + :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. + :param photo_url: URL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service. People like it better when they see what they are paying for. + :param photo_size: Photo size in bytes + :param photo_width: Photo width + :param photo_height: Photo height + :param need_name: Pass :code:`True` if you require the user's full name to complete the order + :param need_phone_number: Pass :code:`True` if you require the user's phone number to complete the order + :param need_email: Pass :code:`True` if you require the user's email address to complete the order + :param need_shipping_address: Pass :code:`True` if you require the user's shipping address to complete the order + :param send_phone_number_to_provider: Pass :code:`True` if the user's phone number should be sent to provider + :param send_email_to_provider: Pass :code:`True` if the user's email address should be sent to provider + :param is_flexible: Pass :code:`True` if the final price depends on the shipping method + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :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. + :return: instance of method :class:`aiogram.methods.send_invoice.SendInvoice` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendInvoice + + return SendInvoice( + chat_id=self.user_chat_id, + title=title, + description=description, + payload=payload, + provider_token=provider_token, + currency=currency, + prices=prices, + message_thread_id=message_thread_id, + max_tip_amount=max_tip_amount, + suggested_tip_amounts=suggested_tip_amounts, + start_parameter=start_parameter, + provider_data=provider_data, + photo_url=photo_url, + photo_size=photo_size, + photo_width=photo_width, + photo_height=photo_height, + need_name=need_name, + need_phone_number=need_phone_number, + need_email=need_email, + need_shipping_address=need_shipping_address, + send_phone_number_to_provider=send_phone_number_to_provider, + send_email_to_provider=send_email_to_provider, + is_flexible=is_flexible, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_location( + self, + latitude: float, + longitude: float, + message_thread_id: Optional[int] = None, + horizontal_accuracy: Optional[float] = None, + live_period: Optional[int] = None, + heading: Optional[int] = None, + proximity_alert_radius: Optional[int] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendLocation: + """ + Shortcut for method :class:`aiogram.methods.send_location.SendLocation` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send point on the map. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendlocation + + :param latitude: Latitude of the location + :param longitude: Longitude of the location + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param horizontal_accuracy: The radius of uncertainty for the location, measured in meters; 0-1500 + :param live_period: Period in seconds for which the location will be updated (see `Live Locations `_, should be between 60 and 86400. + :param heading: For live locations, a direction in which the user is moving, in degrees. Must be between 1 and 360 if specified. + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_location.SendLocation` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendLocation + + return SendLocation( + chat_id=self.chat.id, + latitude=latitude, + longitude=longitude, + message_thread_id=message_thread_id, + horizontal_accuracy=horizontal_accuracy, + live_period=live_period, + heading=heading, + proximity_alert_radius=proximity_alert_radius, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_location_pm( + self, + latitude: float, + longitude: float, + message_thread_id: Optional[int] = None, + horizontal_accuracy: Optional[float] = None, + live_period: Optional[int] = None, + heading: Optional[int] = None, + proximity_alert_radius: Optional[int] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendLocation: + """ + Shortcut for method :class:`aiogram.methods.send_location.SendLocation` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send point on the map. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendlocation + + :param latitude: Latitude of the location + :param longitude: Longitude of the location + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param horizontal_accuracy: The radius of uncertainty for the location, measured in meters; 0-1500 + :param live_period: Period in seconds for which the location will be updated (see `Live Locations `_, should be between 60 and 86400. + :param heading: For live locations, a direction in which the user is moving, in degrees. Must be between 1 and 360 if specified. + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_location.SendLocation` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendLocation + + return SendLocation( + chat_id=self.user_chat_id, + latitude=latitude, + longitude=longitude, + message_thread_id=message_thread_id, + horizontal_accuracy=horizontal_accuracy, + live_period=live_period, + heading=heading, + proximity_alert_radius=proximity_alert_radius, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_media_group( + self, + media: List[Union[InputMediaAudio, InputMediaDocument, InputMediaPhoto, InputMediaVideo]], + message_thread_id: Optional[int] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + **kwargs: Any, + ) -> SendMediaGroup: + """ + Shortcut for method :class:`aiogram.methods.send_media_group.SendMediaGroup` + will automatically fill method attributes: + + - :code:`chat_id` + + 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. + + Source: https://core.telegram.org/bots/api#sendmediagroup + + :param media: A JSON-serialized array describing messages to be sent, must include 2-10 items + :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 reply_to_message_id: If the messages are a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :return: instance of method :class:`aiogram.methods.send_media_group.SendMediaGroup` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendMediaGroup + + return SendMediaGroup( + chat_id=self.chat.id, + media=media, + message_thread_id=message_thread_id, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + **kwargs, + ).as_(self._bot) + + def answer_media_group_pm( + self, + media: List[Union[InputMediaAudio, InputMediaDocument, InputMediaPhoto, InputMediaVideo]], + message_thread_id: Optional[int] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + **kwargs: Any, + ) -> SendMediaGroup: + """ + Shortcut for method :class:`aiogram.methods.send_media_group.SendMediaGroup` + will automatically fill method attributes: + + - :code:`chat_id` + + 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. + + Source: https://core.telegram.org/bots/api#sendmediagroup + + :param media: A JSON-serialized array describing messages to be sent, must include 2-10 items + :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 reply_to_message_id: If the messages are a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :return: instance of method :class:`aiogram.methods.send_media_group.SendMediaGroup` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendMediaGroup + + return SendMediaGroup( + chat_id=self.user_chat_id, + media=media, + message_thread_id=message_thread_id, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + **kwargs, + ).as_(self._bot) + + def answer_photo( + self, + photo: Union[InputFile, str], + message_thread_id: Optional[int] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + has_spoiler: Optional[bool] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendPhoto: + """ + Shortcut for method :class:`aiogram.methods.send_photo.SendPhoto` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send photos. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendphoto + + :param photo: Photo to send. Pass a file_id as String to send a photo that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a photo from the Internet, or upload a new photo using multipart/form-data. The photo must be at most 10 MB in size. The photo's width and height must not exceed 10000 in total. Width and height ratio must be at most 20. :ref:`More information on Sending Files » ` + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param caption: Photo caption (may also be used when resending photos by *file_id*), 0-1024 characters after entities parsing + :param parse_mode: Mode for parsing entities in the photo caption. See `formatting options `_ for more details. + :param caption_entities: A JSON-serialized list of special entities that appear in the caption, which can be specified instead of *parse_mode* + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_photo.SendPhoto` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendPhoto + + return SendPhoto( + chat_id=self.chat.id, + photo=photo, + message_thread_id=message_thread_id, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + has_spoiler=has_spoiler, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_photo_pm( + self, + photo: Union[InputFile, str], + message_thread_id: Optional[int] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + has_spoiler: Optional[bool] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendPhoto: + """ + Shortcut for method :class:`aiogram.methods.send_photo.SendPhoto` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send photos. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendphoto + + :param photo: Photo to send. Pass a file_id as String to send a photo that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a photo from the Internet, or upload a new photo using multipart/form-data. The photo must be at most 10 MB in size. The photo's width and height must not exceed 10000 in total. Width and height ratio must be at most 20. :ref:`More information on Sending Files » ` + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param caption: Photo caption (may also be used when resending photos by *file_id*), 0-1024 characters after entities parsing + :param parse_mode: Mode for parsing entities in the photo caption. See `formatting options `_ for more details. + :param caption_entities: A JSON-serialized list of special entities that appear in the caption, which can be specified instead of *parse_mode* + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_photo.SendPhoto` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendPhoto + + return SendPhoto( + chat_id=self.user_chat_id, + photo=photo, + message_thread_id=message_thread_id, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + has_spoiler=has_spoiler, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_poll( + self, + question: str, + options: List[str], + message_thread_id: Optional[int] = 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[str] = UNSET_PARSE_MODE, + 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[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendPoll: + """ + Shortcut for method :class:`aiogram.methods.send_poll.SendPoll` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send a native poll. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendpoll + + :param question: Poll question, 1-300 characters + :param options: A JSON-serialized list of answer options, 2-10 strings 1-100 characters each + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param is_anonymous: :code:`True`, if the poll needs to be anonymous, defaults to :code:`True` + :param type: Poll type, 'quiz' or 'regular', defaults to 'regular' + :param allows_multiple_answers: :code:`True`, if the poll allows multiple answers, ignored for polls in quiz mode, defaults to :code:`False` + :param correct_option_id: 0-based identifier of the correct answer option, required for polls in quiz mode + :param explanation: Text that is shown when a user chooses an incorrect answer or taps on the lamp icon in a quiz-style poll, 0-200 characters with at most 2 line feeds after entities parsing + :param explanation_parse_mode: Mode for parsing entities in the explanation. See `formatting options `_ for more details. + :param explanation_entities: A JSON-serialized list of special entities that appear in the poll explanation, which can be specified instead of *parse_mode* + :param open_period: Amount of time in seconds the poll will be active after creation, 5-600. Can't be used together with *close_date*. + :param close_date: Point in time (Unix timestamp) when the poll will be automatically closed. Must be at least 5 and no more than 600 seconds in the future. Can't be used together with *open_period*. + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_poll.SendPoll` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendPoll + + return SendPoll( + chat_id=self.chat.id, + question=question, + options=options, + message_thread_id=message_thread_id, + is_anonymous=is_anonymous, + type=type, + allows_multiple_answers=allows_multiple_answers, + correct_option_id=correct_option_id, + explanation=explanation, + explanation_parse_mode=explanation_parse_mode, + explanation_entities=explanation_entities, + open_period=open_period, + close_date=close_date, + is_closed=is_closed, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_poll_pm( + self, + question: str, + options: List[str], + message_thread_id: Optional[int] = 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[str] = UNSET_PARSE_MODE, + 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[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendPoll: + """ + Shortcut for method :class:`aiogram.methods.send_poll.SendPoll` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send a native poll. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendpoll + + :param question: Poll question, 1-300 characters + :param options: A JSON-serialized list of answer options, 2-10 strings 1-100 characters each + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param is_anonymous: :code:`True`, if the poll needs to be anonymous, defaults to :code:`True` + :param type: Poll type, 'quiz' or 'regular', defaults to 'regular' + :param allows_multiple_answers: :code:`True`, if the poll allows multiple answers, ignored for polls in quiz mode, defaults to :code:`False` + :param correct_option_id: 0-based identifier of the correct answer option, required for polls in quiz mode + :param explanation: Text that is shown when a user chooses an incorrect answer or taps on the lamp icon in a quiz-style poll, 0-200 characters with at most 2 line feeds after entities parsing + :param explanation_parse_mode: Mode for parsing entities in the explanation. See `formatting options `_ for more details. + :param explanation_entities: A JSON-serialized list of special entities that appear in the poll explanation, which can be specified instead of *parse_mode* + :param open_period: Amount of time in seconds the poll will be active after creation, 5-600. Can't be used together with *close_date*. + :param close_date: Point in time (Unix timestamp) when the poll will be automatically closed. Must be at least 5 and no more than 600 seconds in the future. Can't be used together with *open_period*. + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_poll.SendPoll` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendPoll + + return SendPoll( + chat_id=self.user_chat_id, + question=question, + options=options, + message_thread_id=message_thread_id, + is_anonymous=is_anonymous, + type=type, + allows_multiple_answers=allows_multiple_answers, + correct_option_id=correct_option_id, + explanation=explanation, + explanation_parse_mode=explanation_parse_mode, + explanation_entities=explanation_entities, + open_period=open_period, + close_date=close_date, + is_closed=is_closed, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_dice( + self, + message_thread_id: Optional[int] = None, + emoji: Optional[str] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendDice: + """ + Shortcut for method :class:`aiogram.methods.send_dice.SendDice` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send an animated emoji that will display a random value. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#senddice + + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_dice.SendDice` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendDice + + return SendDice( + chat_id=self.chat.id, + message_thread_id=message_thread_id, + emoji=emoji, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_dice_pm( + self, + message_thread_id: Optional[int] = None, + emoji: Optional[str] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendDice: + """ + Shortcut for method :class:`aiogram.methods.send_dice.SendDice` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send an animated emoji that will display a random value. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#senddice + + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_dice.SendDice` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendDice + + return SendDice( + chat_id=self.user_chat_id, + message_thread_id=message_thread_id, + emoji=emoji, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_sticker( + self, + sticker: Union[InputFile, str], + message_thread_id: Optional[int] = None, + emoji: Optional[str] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendSticker: + """ + Shortcut for method :class:`aiogram.methods.send_sticker.SendSticker` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send static .WEBP, `animated `_ .TGS, or `video `_ .WEBM stickers. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendsticker + + :param sticker: Sticker to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a .WEBP sticker from the Internet, or upload a new .WEBP or .TGS sticker using multipart/form-data. :ref:`More information on Sending Files » `. Video stickers can only be sent by a file_id. Animated stickers can't be sent via an HTTP URL. + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_sticker.SendSticker` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendSticker + + return SendSticker( + chat_id=self.chat.id, + sticker=sticker, + message_thread_id=message_thread_id, + emoji=emoji, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_sticker_pm( + self, + sticker: Union[InputFile, str], + message_thread_id: Optional[int] = None, + emoji: Optional[str] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendSticker: + """ + Shortcut for method :class:`aiogram.methods.send_sticker.SendSticker` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send static .WEBP, `animated `_ .TGS, or `video `_ .WEBM stickers. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendsticker + + :param sticker: Sticker to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a .WEBP sticker from the Internet, or upload a new .WEBP or .TGS sticker using multipart/form-data. :ref:`More information on Sending Files » `. Video stickers can only be sent by a file_id. Animated stickers can't be sent via an HTTP URL. + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_sticker.SendSticker` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendSticker + + return SendSticker( + chat_id=self.user_chat_id, + sticker=sticker, + message_thread_id=message_thread_id, + emoji=emoji, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_venue( + self, + latitude: float, + longitude: float, + title: str, + address: str, + message_thread_id: Optional[int] = None, + foursquare_id: Optional[str] = None, + foursquare_type: Optional[str] = None, + google_place_id: Optional[str] = None, + google_place_type: Optional[str] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendVenue: + """ + Shortcut for method :class:`aiogram.methods.send_venue.SendVenue` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send information about a venue. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendvenue + + :param latitude: Latitude of the venue + :param longitude: Longitude of the venue + :param title: Name of the venue + :param address: Address of the venue + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param foursquare_id: Foursquare identifier of the venue + :param foursquare_type: Foursquare type of the venue, if known. (For example, 'arts_entertainment/default', 'arts_entertainment/aquarium' or 'food/icecream'.) + :param google_place_id: Google Places identifier of the venue + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_venue.SendVenue` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendVenue + + return SendVenue( + chat_id=self.chat.id, + latitude=latitude, + longitude=longitude, + title=title, + address=address, + message_thread_id=message_thread_id, + foursquare_id=foursquare_id, + foursquare_type=foursquare_type, + google_place_id=google_place_id, + google_place_type=google_place_type, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_venue_pm( + self, + latitude: float, + longitude: float, + title: str, + address: str, + message_thread_id: Optional[int] = None, + foursquare_id: Optional[str] = None, + foursquare_type: Optional[str] = None, + google_place_id: Optional[str] = None, + google_place_type: Optional[str] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendVenue: + """ + Shortcut for method :class:`aiogram.methods.send_venue.SendVenue` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send information about a venue. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendvenue + + :param latitude: Latitude of the venue + :param longitude: Longitude of the venue + :param title: Name of the venue + :param address: Address of the venue + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param foursquare_id: Foursquare identifier of the venue + :param foursquare_type: Foursquare type of the venue, if known. (For example, 'arts_entertainment/default', 'arts_entertainment/aquarium' or 'food/icecream'.) + :param google_place_id: Google Places identifier of the venue + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_venue.SendVenue` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendVenue + + return SendVenue( + chat_id=self.user_chat_id, + latitude=latitude, + longitude=longitude, + title=title, + address=address, + message_thread_id=message_thread_id, + foursquare_id=foursquare_id, + foursquare_type=foursquare_type, + google_place_id=google_place_id, + google_place_type=google_place_type, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_video( + self, + video: Union[InputFile, str], + message_thread_id: Optional[int] = None, + duration: Optional[int] = None, + width: Optional[int] = None, + height: Optional[int] = None, + thumbnail: Optional[Union[InputFile, str]] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + has_spoiler: Optional[bool] = None, + supports_streaming: Optional[bool] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendVideo: + """ + Shortcut for method :class:`aiogram.methods.send_video.SendVideo` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send video files, Telegram clients support MPEG4 videos (other formats may be sent as :class:`aiogram.types.document.Document`). On success, the sent :class:`aiogram.types.message.Message` is returned. Bots can currently send video files of up to 50 MB in size, this limit may be changed in the future. + + Source: https://core.telegram.org/bots/api#sendvideo + + :param video: Video to send. Pass a file_id as String to send a video that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a video from the Internet, or upload a new video using multipart/form-data. :ref:`More information on Sending Files » ` + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param duration: Duration of sent video in seconds + :param width: Video width + :param height: Video height + :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 caption: Video caption (may also be used when resending videos by *file_id*), 0-1024 characters after entities parsing + :param parse_mode: Mode for parsing entities in the video caption. See `formatting options `_ for more details. + :param caption_entities: A JSON-serialized list of special entities that appear in the caption, which can be specified instead of *parse_mode* + :param has_spoiler: Pass :code:`True` if the video needs to be covered with a spoiler animation + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_video.SendVideo` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendVideo + + return SendVideo( + chat_id=self.chat.id, + video=video, + message_thread_id=message_thread_id, + duration=duration, + width=width, + height=height, + thumbnail=thumbnail, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + has_spoiler=has_spoiler, + supports_streaming=supports_streaming, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_video_pm( + self, + video: Union[InputFile, str], + message_thread_id: Optional[int] = None, + duration: Optional[int] = None, + width: Optional[int] = None, + height: Optional[int] = None, + thumbnail: Optional[Union[InputFile, str]] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + has_spoiler: Optional[bool] = None, + supports_streaming: Optional[bool] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendVideo: + """ + Shortcut for method :class:`aiogram.methods.send_video.SendVideo` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send video files, Telegram clients support MPEG4 videos (other formats may be sent as :class:`aiogram.types.document.Document`). On success, the sent :class:`aiogram.types.message.Message` is returned. Bots can currently send video files of up to 50 MB in size, this limit may be changed in the future. + + Source: https://core.telegram.org/bots/api#sendvideo + + :param video: Video to send. Pass a file_id as String to send a video that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a video from the Internet, or upload a new video using multipart/form-data. :ref:`More information on Sending Files » ` + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param duration: Duration of sent video in seconds + :param width: Video width + :param height: Video height + :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 caption: Video caption (may also be used when resending videos by *file_id*), 0-1024 characters after entities parsing + :param parse_mode: Mode for parsing entities in the video caption. See `formatting options `_ for more details. + :param caption_entities: A JSON-serialized list of special entities that appear in the caption, which can be specified instead of *parse_mode* + :param has_spoiler: Pass :code:`True` if the video needs to be covered with a spoiler animation + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_video.SendVideo` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendVideo + + return SendVideo( + chat_id=self.user_chat_id, + video=video, + message_thread_id=message_thread_id, + duration=duration, + width=width, + height=height, + thumbnail=thumbnail, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + has_spoiler=has_spoiler, + supports_streaming=supports_streaming, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_video_note( + self, + video_note: Union[InputFile, str], + message_thread_id: Optional[int] = None, + duration: Optional[int] = None, + length: Optional[int] = None, + thumbnail: Optional[Union[InputFile, str]] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendVideoNote: + """ + Shortcut for method :class:`aiogram.methods.send_video_note.SendVideoNote` + will automatically fill method attributes: + + - :code:`chat_id` + + As of `v.4.0 `_, Telegram clients support rounded square MPEG4 videos of up to 1 minute long. Use this method to send video messages. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendvideonote + + :param video_note: Video note to send. Pass a file_id as String to send a video note that exists on the Telegram servers (recommended) or upload a new video using multipart/form-data. :ref:`More information on Sending Files » `. Sending video notes by a URL is currently unsupported + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param duration: Duration of sent video in seconds + :param length: Video width and height, i.e. diameter of the video message + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_video_note.SendVideoNote` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendVideoNote + + return SendVideoNote( + chat_id=self.chat.id, + video_note=video_note, + message_thread_id=message_thread_id, + duration=duration, + length=length, + thumbnail=thumbnail, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_video_note_pm( + self, + video_note: Union[InputFile, str], + message_thread_id: Optional[int] = None, + duration: Optional[int] = None, + length: Optional[int] = None, + thumbnail: Optional[Union[InputFile, str]] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendVideoNote: + """ + Shortcut for method :class:`aiogram.methods.send_video_note.SendVideoNote` + will automatically fill method attributes: + + - :code:`chat_id` + + As of `v.4.0 `_, Telegram clients support rounded square MPEG4 videos of up to 1 minute long. Use this method to send video messages. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendvideonote + + :param video_note: Video note to send. Pass a file_id as String to send a video note that exists on the Telegram servers (recommended) or upload a new video using multipart/form-data. :ref:`More information on Sending Files » `. Sending video notes by a URL is currently unsupported + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param duration: Duration of sent video in seconds + :param length: Video width and height, i.e. diameter of the video message + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_video_note.SendVideoNote` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendVideoNote + + return SendVideoNote( + chat_id=self.user_chat_id, + video_note=video_note, + message_thread_id=message_thread_id, + duration=duration, + length=length, + thumbnail=thumbnail, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_voice( + self, + voice: Union[InputFile, str], + message_thread_id: Optional[int] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + duration: Optional[int] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendVoice: + """ + Shortcut for method :class:`aiogram.methods.send_voice.SendVoice` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send audio files, if you want Telegram clients to display the file as a playable voice message. For this to work, your audio must be in an .OGG file encoded with OPUS (other formats may be sent as :class:`aiogram.types.audio.Audio` or :class:`aiogram.types.document.Document`). On success, the sent :class:`aiogram.types.message.Message` is returned. Bots can currently send voice messages of up to 50 MB in size, this limit may be changed in the future. + + Source: https://core.telegram.org/bots/api#sendvoice + + :param voice: Audio file to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), 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 » ` + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param caption: Voice message caption, 0-1024 characters after entities parsing + :param parse_mode: Mode for parsing entities in the voice message caption. See `formatting options `_ for more details. + :param caption_entities: A JSON-serialized list of special entities that appear in the caption, which can be specified instead of *parse_mode* + :param duration: Duration of the voice message in seconds + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_voice.SendVoice` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendVoice + + return SendVoice( + chat_id=self.chat.id, + voice=voice, + message_thread_id=message_thread_id, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + duration=duration, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_voice_pm( + self, + voice: Union[InputFile, str], + message_thread_id: Optional[int] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + duration: Optional[int] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendVoice: + """ + Shortcut for method :class:`aiogram.methods.send_voice.SendVoice` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send audio files, if you want Telegram clients to display the file as a playable voice message. For this to work, your audio must be in an .OGG file encoded with OPUS (other formats may be sent as :class:`aiogram.types.audio.Audio` or :class:`aiogram.types.document.Document`). On success, the sent :class:`aiogram.types.message.Message` is returned. Bots can currently send voice messages of up to 50 MB in size, this limit may be changed in the future. + + Source: https://core.telegram.org/bots/api#sendvoice + + :param voice: Audio file to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), 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 » ` + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param caption: Voice message caption, 0-1024 characters after entities parsing + :param parse_mode: Mode for parsing entities in the voice message caption. See `formatting options `_ for more details. + :param caption_entities: A JSON-serialized list of special entities that appear in the caption, which can be specified instead of *parse_mode* + :param duration: Duration of the voice message in seconds + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_voice.SendVoice` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendVoice + + return SendVoice( + chat_id=self.user_chat_id, + voice=voice, + message_thread_id=message_thread_id, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + duration=duration, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) diff --git a/aiogram/types/chat_location.py b/aiogram/types/chat_location.py index 89b28d7c..ad64a3c3 100644 --- a/aiogram/types/chat_location.py +++ b/aiogram/types/chat_location.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any from .base import TelegramObject @@ -19,3 +19,16 @@ class ChatLocation(TelegramObject): """The location to which the supergroup is connected. Can't be a live location.""" address: str """Location address; 1-64 characters, as defined by the chat owner""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, location: Location, address: str, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(location=location, address=address, **__pydantic_kwargs) diff --git a/aiogram/types/chat_member.py b/aiogram/types/chat_member.py index 6bf5b79e..018bebda 100644 --- a/aiogram/types/chat_member.py +++ b/aiogram/types/chat_member.py @@ -1,13 +1,7 @@ from __future__ import annotations -import datetime -from typing import TYPE_CHECKING, Optional - from .base import TelegramObject -if TYPE_CHECKING: - from .user import User - class ChatMember(TelegramObject): """ @@ -22,60 +16,3 @@ class ChatMember(TelegramObject): Source: https://core.telegram.org/bots/api#chatmember """ - - status: str - """The member's status in the chat""" - user: Optional[User] = None - """*Optional*. Information about the user""" - is_anonymous: Optional[bool] = None - """*Optional*. :code:`True`, if the user's presence in the chat is hidden""" - custom_title: Optional[str] = None - """*Optional*. Custom title for this user""" - can_be_edited: Optional[bool] = None - """*Optional*. :code:`True`, if the bot is allowed to edit administrator privileges of that user""" - can_manage_chat: Optional[bool] = None - """*Optional*. :code:`True`, if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege""" - can_delete_messages: Optional[bool] = None - """*Optional*. :code:`True`, if the administrator can delete messages of other users""" - can_manage_video_chats: Optional[bool] = None - """*Optional*. :code:`True`, if the administrator can manage video chats""" - can_restrict_members: Optional[bool] = None - """*Optional*. :code:`True`, if the administrator can restrict, ban or unban chat members""" - can_promote_members: Optional[bool] = None - """*Optional*. :code:`True`, if the administrator can add new administrators with a subset of their own privileges or demote administrators that they have promoted, directly or indirectly (promoted by administrators that were appointed by the user)""" - can_change_info: Optional[bool] = None - """*Optional*. :code:`True`, if the user is allowed to change the chat title, photo and other settings""" - can_invite_users: Optional[bool] = None - """*Optional*. :code:`True`, if the user is allowed to invite new users to the chat""" - can_post_messages: Optional[bool] = None - """*Optional*. :code:`True`, if the administrator can post in the channel; channels only""" - can_edit_messages: Optional[bool] = None - """*Optional*. :code:`True`, if the administrator can edit messages of other users and can pin messages; channels only""" - can_pin_messages: Optional[bool] = None - """*Optional*. :code:`True`, if the user is allowed to pin messages; groups and supergroups only""" - can_manage_topics: Optional[bool] = None - """*Optional*. :code:`True`, if the user is allowed to create, rename, close, and reopen forum topics; supergroups only""" - is_member: Optional[bool] = None - """*Optional*. :code:`True`, if the user is a member of the chat at the moment of the request""" - can_send_messages: Optional[bool] = None - """*Optional*. :code:`True`, if the user is allowed to send text messages, contacts, invoices, locations and venues""" - can_send_audios: Optional[bool] = None - """*Optional*. :code:`True`, if the user is allowed to send audios""" - can_send_documents: Optional[bool] = None - """*Optional*. :code:`True`, if the user is allowed to send documents""" - can_send_photos: Optional[bool] = None - """*Optional*. :code:`True`, if the user is allowed to send photos""" - can_send_videos: Optional[bool] = None - """*Optional*. :code:`True`, if the user is allowed to send videos""" - can_send_video_notes: Optional[bool] = None - """*Optional*. :code:`True`, if the user is allowed to send video notes""" - can_send_voice_notes: Optional[bool] = None - """*Optional*. :code:`True`, if the user is allowed to send voice notes""" - can_send_polls: Optional[bool] = None - """*Optional*. :code:`True`, if the user is allowed to send polls""" - can_send_other_messages: Optional[bool] = None - """*Optional*. :code:`True`, if the user is allowed to send animations, games, stickers and use inline bots""" - can_add_web_page_previews: Optional[bool] = None - """*Optional*. :code:`True`, if the user is allowed to add web page previews to their messages""" - until_date: Optional[datetime.datetime] = None - """*Optional*. Date when restrictions will be lifted for this user; unix time. If 0, then the user is restricted forever""" diff --git a/aiogram/types/chat_member_administrator.py b/aiogram/types/chat_member_administrator.py index 94fc76c3..215ff0bd 100644 --- a/aiogram/types/chat_member_administrator.py +++ b/aiogram/types/chat_member_administrator.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal, Optional from ..enums import ChatMemberStatus from .chat_member import ChatMember @@ -18,7 +16,7 @@ class ChatMemberAdministrator(ChatMember): Source: https://core.telegram.org/bots/api#chatmemberadministrator """ - status: str = Field(ChatMemberStatus.ADMINISTRATOR, const=True) + status: Literal[ChatMemberStatus.ADMINISTRATOR] = ChatMemberStatus.ADMINISTRATOR """The member's status in the chat, always 'administrator'""" user: User """Information about the user""" @@ -27,13 +25,13 @@ class ChatMemberAdministrator(ChatMember): is_anonymous: bool """:code:`True`, if the user's presence in the chat is hidden""" can_manage_chat: bool - """:code:`True`, if the administrator can access the chat event log, chat statistics, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege""" + """:code:`True`, if the administrator can access the chat event log, boost list in channels, see channel members, report spam messages, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege""" can_delete_messages: bool """:code:`True`, if the administrator can delete messages of other users""" can_manage_video_chats: bool """:code:`True`, if the administrator can manage video chats""" can_restrict_members: bool - """:code:`True`, if the administrator can restrict, ban or unban chat members""" + """:code:`True`, if the administrator can restrict, ban or unban chat members, or access supergroup statistics""" can_promote_members: bool """:code:`True`, if the administrator can add new administrators with a subset of their own privileges or demote administrators that they have promoted, directly or indirectly (promoted by administrators that were appointed by the user)""" can_change_info: bool @@ -41,12 +39,73 @@ class ChatMemberAdministrator(ChatMember): can_invite_users: bool """:code:`True`, if the user is allowed to invite new users to the chat""" can_post_messages: Optional[bool] = None - """*Optional*. :code:`True`, if the administrator can post in the channel; channels only""" + """*Optional*. :code:`True`, if the administrator can post messages in the channel, or access channel statistics; channels only""" can_edit_messages: Optional[bool] = None """*Optional*. :code:`True`, if the administrator can edit messages of other users and can pin messages; channels only""" can_pin_messages: Optional[bool] = None """*Optional*. :code:`True`, if the user is allowed to pin messages; groups and supergroups only""" + can_post_stories: Optional[bool] = None + """*Optional*. :code:`True`, if the administrator can post stories in the channel; channels only""" + can_edit_stories: Optional[bool] = None + """*Optional*. :code:`True`, if the administrator can edit stories posted by other users; channels only""" + can_delete_stories: Optional[bool] = None + """*Optional*. :code:`True`, if the administrator can delete stories posted by other users; channels only""" can_manage_topics: Optional[bool] = None """*Optional*. :code:`True`, if the user is allowed to create, rename, close, and reopen forum topics; supergroups only""" custom_title: Optional[str] = None """*Optional*. Custom title for this user""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + status: Literal[ChatMemberStatus.ADMINISTRATOR] = ChatMemberStatus.ADMINISTRATOR, + user: User, + can_be_edited: bool, + is_anonymous: bool, + can_manage_chat: bool, + can_delete_messages: bool, + can_manage_video_chats: bool, + can_restrict_members: bool, + can_promote_members: bool, + can_change_info: bool, + can_invite_users: bool, + can_post_messages: Optional[bool] = None, + can_edit_messages: Optional[bool] = None, + can_pin_messages: Optional[bool] = None, + can_post_stories: Optional[bool] = None, + can_edit_stories: Optional[bool] = None, + can_delete_stories: Optional[bool] = None, + can_manage_topics: Optional[bool] = None, + custom_title: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + status=status, + user=user, + can_be_edited=can_be_edited, + is_anonymous=is_anonymous, + can_manage_chat=can_manage_chat, + can_delete_messages=can_delete_messages, + can_manage_video_chats=can_manage_video_chats, + can_restrict_members=can_restrict_members, + can_promote_members=can_promote_members, + can_change_info=can_change_info, + can_invite_users=can_invite_users, + can_post_messages=can_post_messages, + can_edit_messages=can_edit_messages, + can_pin_messages=can_pin_messages, + can_post_stories=can_post_stories, + can_edit_stories=can_edit_stories, + can_delete_stories=can_delete_stories, + can_manage_topics=can_manage_topics, + custom_title=custom_title, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/chat_member_banned.py b/aiogram/types/chat_member_banned.py index 85c07f51..65776c52 100644 --- a/aiogram/types/chat_member_banned.py +++ b/aiogram/types/chat_member_banned.py @@ -1,12 +1,10 @@ from __future__ import annotations -import datetime -from typing import TYPE_CHECKING - -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal from ..enums import ChatMemberStatus from .chat_member import ChatMember +from .custom import DateTime if TYPE_CHECKING: from .user import User @@ -19,9 +17,27 @@ class ChatMemberBanned(ChatMember): Source: https://core.telegram.org/bots/api#chatmemberbanned """ - status: str = Field(ChatMemberStatus.KICKED, const=True) + status: Literal[ChatMemberStatus.KICKED] = ChatMemberStatus.KICKED """The member's status in the chat, always 'kicked'""" user: User """Information about the user""" - until_date: datetime.datetime - """Date when restrictions will be lifted for this user; unix time. If 0, then the user is banned forever""" + until_date: DateTime + """Date when restrictions will be lifted for this user; Unix time. If 0, then the user is banned forever""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + status: Literal[ChatMemberStatus.KICKED] = ChatMemberStatus.KICKED, + user: User, + until_date: DateTime, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(status=status, user=user, until_date=until_date, **__pydantic_kwargs) diff --git a/aiogram/types/chat_member_left.py b/aiogram/types/chat_member_left.py index 6d7968c1..3870d17f 100644 --- a/aiogram/types/chat_member_left.py +++ b/aiogram/types/chat_member_left.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING - -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal from ..enums import ChatMemberStatus from .chat_member import ChatMember @@ -18,7 +16,24 @@ class ChatMemberLeft(ChatMember): Source: https://core.telegram.org/bots/api#chatmemberleft """ - status: str = Field(ChatMemberStatus.LEFT, const=True) + status: Literal[ChatMemberStatus.LEFT] = ChatMemberStatus.LEFT """The member's status in the chat, always 'left'""" user: User """Information about the user""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + status: Literal[ChatMemberStatus.LEFT] = ChatMemberStatus.LEFT, + user: User, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(status=status, user=user, **__pydantic_kwargs) diff --git a/aiogram/types/chat_member_member.py b/aiogram/types/chat_member_member.py index 303a7d9d..663b190b 100644 --- a/aiogram/types/chat_member_member.py +++ b/aiogram/types/chat_member_member.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING - -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal from ..enums import ChatMemberStatus from .chat_member import ChatMember @@ -18,7 +16,24 @@ class ChatMemberMember(ChatMember): Source: https://core.telegram.org/bots/api#chatmembermember """ - status: str = Field(ChatMemberStatus.MEMBER, const=True) + status: Literal[ChatMemberStatus.MEMBER] = ChatMemberStatus.MEMBER """The member's status in the chat, always 'member'""" user: User """Information about the user""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + status: Literal[ChatMemberStatus.MEMBER] = ChatMemberStatus.MEMBER, + user: User, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(status=status, user=user, **__pydantic_kwargs) diff --git a/aiogram/types/chat_member_owner.py b/aiogram/types/chat_member_owner.py index e7c64fc1..1429435e 100644 --- a/aiogram/types/chat_member_owner.py +++ b/aiogram/types/chat_member_owner.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal, Optional from ..enums import ChatMemberStatus from .chat_member import ChatMember @@ -18,7 +16,7 @@ class ChatMemberOwner(ChatMember): Source: https://core.telegram.org/bots/api#chatmemberowner """ - status: str = Field(ChatMemberStatus.CREATOR, const=True) + status: Literal[ChatMemberStatus.CREATOR] = ChatMemberStatus.CREATOR """The member's status in the chat, always 'creator'""" user: User """Information about the user""" @@ -26,3 +24,28 @@ class ChatMemberOwner(ChatMember): """:code:`True`, if the user's presence in the chat is hidden""" custom_title: Optional[str] = None """*Optional*. Custom title for this user""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + status: Literal[ChatMemberStatus.CREATOR] = ChatMemberStatus.CREATOR, + user: User, + is_anonymous: bool, + custom_title: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + status=status, + user=user, + is_anonymous=is_anonymous, + custom_title=custom_title, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/chat_member_restricted.py b/aiogram/types/chat_member_restricted.py index b6f4f556..b27d72a2 100644 --- a/aiogram/types/chat_member_restricted.py +++ b/aiogram/types/chat_member_restricted.py @@ -1,12 +1,10 @@ from __future__ import annotations -import datetime -from typing import TYPE_CHECKING - -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal from ..enums import ChatMemberStatus from .chat_member import ChatMember +from .custom import DateTime if TYPE_CHECKING: from .user import User @@ -19,7 +17,7 @@ class ChatMemberRestricted(ChatMember): Source: https://core.telegram.org/bots/api#chatmemberrestricted """ - status: str = Field(ChatMemberStatus.RESTRICTED, const=True) + status: Literal[ChatMemberStatus.RESTRICTED] = ChatMemberStatus.RESTRICTED """The member's status in the chat, always 'restricted'""" user: User """Information about the user""" @@ -53,5 +51,58 @@ class ChatMemberRestricted(ChatMember): """:code:`True`, if the user is allowed to pin messages""" can_manage_topics: bool """:code:`True`, if the user is allowed to create forum topics""" - until_date: datetime.datetime - """Date when restrictions will be lifted for this user; unix time. If 0, then the user is restricted forever""" + until_date: DateTime + """Date when restrictions will be lifted for this user; Unix time. If 0, then the user is restricted forever""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + status: Literal[ChatMemberStatus.RESTRICTED] = ChatMemberStatus.RESTRICTED, + user: User, + is_member: bool, + can_send_messages: bool, + can_send_audios: bool, + can_send_documents: bool, + can_send_photos: bool, + can_send_videos: bool, + can_send_video_notes: bool, + can_send_voice_notes: bool, + can_send_polls: bool, + can_send_other_messages: bool, + can_add_web_page_previews: bool, + can_change_info: bool, + can_invite_users: bool, + can_pin_messages: bool, + can_manage_topics: bool, + until_date: DateTime, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + status=status, + user=user, + is_member=is_member, + can_send_messages=can_send_messages, + can_send_audios=can_send_audios, + can_send_documents=can_send_documents, + can_send_photos=can_send_photos, + can_send_videos=can_send_videos, + can_send_video_notes=can_send_video_notes, + can_send_voice_notes=can_send_voice_notes, + can_send_polls=can_send_polls, + can_send_other_messages=can_send_other_messages, + can_add_web_page_previews=can_add_web_page_previews, + can_change_info=can_change_info, + can_invite_users=can_invite_users, + can_pin_messages=can_pin_messages, + can_manage_topics=can_manage_topics, + until_date=until_date, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/chat_member_updated.py b/aiogram/types/chat_member_updated.py index 5931da6f..46110092 100644 --- a/aiogram/types/chat_member_updated.py +++ b/aiogram/types/chat_member_updated.py @@ -1,13 +1,38 @@ from __future__ import annotations import datetime -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING, Any, List, Optional, Union from pydantic import Field -from .base import TelegramObject +from .base import ( + UNSET_DISABLE_WEB_PAGE_PREVIEW, + UNSET_PARSE_MODE, + UNSET_PROTECT_CONTENT, + TelegramObject, +) +from .custom import DateTime if TYPE_CHECKING: + from ..methods import ( + SendAnimation, + SendAudio, + SendContact, + SendDice, + SendDocument, + SendGame, + SendInvoice, + SendLocation, + SendMediaGroup, + SendMessage, + SendPhoto, + SendPoll, + SendSticker, + SendVenue, + SendVideo, + SendVideoNote, + SendVoice, + ) from .chat import Chat from .chat_invite_link import ChatInviteLink from .chat_member_administrator import ChatMemberAdministrator @@ -16,6 +41,17 @@ if TYPE_CHECKING: from .chat_member_member import ChatMemberMember from .chat_member_owner import ChatMemberOwner from .chat_member_restricted import ChatMemberRestricted + from .force_reply import ForceReply + from .inline_keyboard_markup import InlineKeyboardMarkup + from .input_file import InputFile + from .input_media_audio import InputMediaAudio + from .input_media_document import InputMediaDocument + from .input_media_photo import InputMediaPhoto + from .input_media_video import InputMediaVideo + from .labeled_price import LabeledPrice + from .message_entity import MessageEntity + from .reply_keyboard_markup import ReplyKeyboardMarkup + from .reply_keyboard_remove import ReplyKeyboardRemove from .user import User @@ -30,7 +66,7 @@ class ChatMemberUpdated(TelegramObject): """Chat the user belongs to""" from_user: User = Field(..., alias="from") """Performer of the action, which resulted in the change""" - date: datetime.datetime + date: DateTime """Date the change was done in Unix time""" old_chat_member: Union[ ChatMemberOwner, @@ -54,3 +90,1143 @@ class ChatMemberUpdated(TelegramObject): """*Optional*. Chat invite link, which was used by the user to join the chat; for joining by invite link events only.""" via_chat_folder_invite_link: Optional[bool] = None """*Optional*. True, if the user joined the chat via a chat folder invite link""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + chat: Chat, + from_user: User, + date: DateTime, + old_chat_member: Union[ + ChatMemberOwner, + ChatMemberAdministrator, + ChatMemberMember, + ChatMemberRestricted, + ChatMemberLeft, + ChatMemberBanned, + ], + new_chat_member: Union[ + ChatMemberOwner, + ChatMemberAdministrator, + ChatMemberMember, + ChatMemberRestricted, + ChatMemberLeft, + ChatMemberBanned, + ], + invite_link: Optional[ChatInviteLink] = None, + via_chat_folder_invite_link: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + chat=chat, + from_user=from_user, + date=date, + old_chat_member=old_chat_member, + new_chat_member=new_chat_member, + invite_link=invite_link, + via_chat_folder_invite_link=via_chat_folder_invite_link, + **__pydantic_kwargs, + ) + + def answer( + self, + text: str, + message_thread_id: Optional[int] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + entities: Optional[List[MessageEntity]] = None, + disable_web_page_preview: Optional[bool] = UNSET_DISABLE_WEB_PAGE_PREVIEW, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendMessage: + """ + Shortcut for method :class:`aiogram.methods.send_message.SendMessage` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send text messages. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendmessage + + :param text: Text of the message to be sent, 1-4096 characters after entities parsing + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param parse_mode: Mode for parsing entities in the message text. See `formatting options `_ for more details. + :param entities: A JSON-serialized list of special entities that appear in message text, which can be specified instead of *parse_mode* + :param disable_web_page_preview: Disables link previews for links in this 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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_message.SendMessage` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendMessage + + return SendMessage( + chat_id=self.chat.id, + text=text, + message_thread_id=message_thread_id, + parse_mode=parse_mode, + entities=entities, + disable_web_page_preview=disable_web_page_preview, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_animation( + self, + animation: Union[InputFile, str], + message_thread_id: Optional[int] = None, + duration: Optional[int] = None, + width: Optional[int] = None, + height: Optional[int] = None, + thumbnail: Optional[Union[InputFile, str]] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + has_spoiler: Optional[bool] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendAnimation: + """ + Shortcut for method :class:`aiogram.methods.send_animation.SendAnimation` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send animation files (GIF or H.264/MPEG-4 AVC video without sound). On success, the sent :class:`aiogram.types.message.Message` is returned. Bots can currently send animation files of up to 50 MB in size, this limit may be changed in the future. + + Source: https://core.telegram.org/bots/api#sendanimation + + :param animation: Animation to send. Pass a file_id as String to send an animation that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an animation from the Internet, or upload a new animation using multipart/form-data. :ref:`More information on Sending Files » ` + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param duration: Duration of sent animation in seconds + :param width: Animation width + :param height: Animation height + :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 caption: Animation caption (may also be used when resending animation by *file_id*), 0-1024 characters after entities parsing + :param parse_mode: Mode for parsing entities in the animation caption. See `formatting options `_ for more details. + :param caption_entities: A JSON-serialized list of special entities that appear in the caption, which can be specified instead of *parse_mode* + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_animation.SendAnimation` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendAnimation + + return SendAnimation( + chat_id=self.chat.id, + animation=animation, + message_thread_id=message_thread_id, + duration=duration, + width=width, + height=height, + thumbnail=thumbnail, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + has_spoiler=has_spoiler, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_audio( + self, + audio: Union[InputFile, str], + message_thread_id: Optional[int] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + duration: Optional[int] = None, + performer: Optional[str] = None, + title: Optional[str] = None, + thumbnail: Optional[Union[InputFile, str]] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendAudio: + """ + Shortcut for method :class:`aiogram.methods.send_audio.SendAudio` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send audio files, if you want Telegram clients to display them in the music player. Your audio must be in the .MP3 or .M4A format. On success, the sent :class:`aiogram.types.message.Message` is returned. Bots can currently send audio files of up to 50 MB in size, this limit may be changed in the future. + For sending voice messages, use the :class:`aiogram.methods.send_voice.SendVoice` method instead. + + Source: https://core.telegram.org/bots/api#sendaudio + + :param audio: Audio file to send. Pass a file_id as String to send an audio file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an audio file from the Internet, or upload a new one using multipart/form-data. :ref:`More information on Sending Files » ` + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param caption: Audio caption, 0-1024 characters after entities parsing + :param parse_mode: Mode for parsing entities in the audio caption. See `formatting options `_ for more details. + :param caption_entities: A JSON-serialized list of special entities that appear in the caption, which can be specified instead of *parse_mode* + :param duration: Duration of the audio in seconds + :param performer: Performer + :param title: Track name + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_audio.SendAudio` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendAudio + + return SendAudio( + chat_id=self.chat.id, + audio=audio, + message_thread_id=message_thread_id, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + duration=duration, + performer=performer, + title=title, + thumbnail=thumbnail, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_contact( + self, + phone_number: str, + first_name: str, + message_thread_id: Optional[int] = None, + last_name: Optional[str] = None, + vcard: Optional[str] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendContact: + """ + Shortcut for method :class:`aiogram.methods.send_contact.SendContact` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send phone contacts. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendcontact + + :param phone_number: Contact's phone number + :param first_name: Contact's first name + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param last_name: Contact's last name + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_contact.SendContact` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendContact + + return SendContact( + chat_id=self.chat.id, + phone_number=phone_number, + first_name=first_name, + message_thread_id=message_thread_id, + last_name=last_name, + vcard=vcard, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_document( + self, + document: Union[InputFile, str], + message_thread_id: Optional[int] = None, + thumbnail: Optional[Union[InputFile, str]] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + disable_content_type_detection: Optional[bool] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendDocument: + """ + Shortcut for method :class:`aiogram.methods.send_document.SendDocument` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send general files. On success, the sent :class:`aiogram.types.message.Message` is returned. Bots can currently send files of any type of up to 50 MB in size, this limit may be changed in the future. + + Source: https://core.telegram.org/bots/api#senddocument + + :param document: File to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), 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 » ` + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :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 caption: Document caption (may also be used when resending documents by *file_id*), 0-1024 characters after entities parsing + :param parse_mode: Mode for parsing entities in the document caption. See `formatting options `_ for more details. + :param caption_entities: A JSON-serialized list of special entities that appear in the caption, which can be specified instead of *parse_mode* + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_document.SendDocument` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendDocument + + return SendDocument( + chat_id=self.chat.id, + document=document, + message_thread_id=message_thread_id, + thumbnail=thumbnail, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + disable_content_type_detection=disable_content_type_detection, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_game( + self, + game_short_name: str, + message_thread_id: Optional[int] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + **kwargs: Any, + ) -> SendGame: + """ + Shortcut for method :class:`aiogram.methods.send_game.SendGame` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send a game. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendgame + + :param game_short_name: Short name of the game, serves as the unique identifier for the game. Set up your games via `@BotFather `_. + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :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. + :return: instance of method :class:`aiogram.methods.send_game.SendGame` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendGame + + return SendGame( + chat_id=self.chat.id, + game_short_name=game_short_name, + message_thread_id=message_thread_id, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_invoice( + self, + title: str, + description: str, + payload: str, + provider_token: str, + currency: str, + prices: List[LabeledPrice], + message_thread_id: Optional[int] = None, + max_tip_amount: Optional[int] = None, + suggested_tip_amounts: Optional[List[int]] = None, + start_parameter: Optional[str] = None, + provider_data: Optional[str] = None, + photo_url: Optional[str] = None, + photo_size: Optional[int] = None, + photo_width: Optional[int] = None, + photo_height: Optional[int] = None, + need_name: Optional[bool] = None, + need_phone_number: Optional[bool] = None, + need_email: Optional[bool] = None, + need_shipping_address: Optional[bool] = None, + send_phone_number_to_provider: Optional[bool] = None, + send_email_to_provider: Optional[bool] = None, + is_flexible: Optional[bool] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + **kwargs: Any, + ) -> SendInvoice: + """ + Shortcut for method :class:`aiogram.methods.send_invoice.SendInvoice` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send invoices. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendinvoice + + :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 provider_token: Payment provider token, obtained via `@BotFather `_ + :param currency: Three-letter ISO 4217 currency code, see `more on currencies `_ + :param prices: Price breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.) + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :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 + :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 start_parameter: Unique deep-linking parameter. If left empty, **forwarded copies** of the sent message will have a *Pay* button, allowing multiple users to pay directly from the forwarded message, using the same invoice. If non-empty, forwarded copies of the sent message will have a *URL* button with a deep link to the bot (instead of a *Pay* button), with the value used as the start parameter + :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. + :param photo_url: URL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service. People like it better when they see what they are paying for. + :param photo_size: Photo size in bytes + :param photo_width: Photo width + :param photo_height: Photo height + :param need_name: Pass :code:`True` if you require the user's full name to complete the order + :param need_phone_number: Pass :code:`True` if you require the user's phone number to complete the order + :param need_email: Pass :code:`True` if you require the user's email address to complete the order + :param need_shipping_address: Pass :code:`True` if you require the user's shipping address to complete the order + :param send_phone_number_to_provider: Pass :code:`True` if the user's phone number should be sent to provider + :param send_email_to_provider: Pass :code:`True` if the user's email address should be sent to provider + :param is_flexible: Pass :code:`True` if the final price depends on the shipping method + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :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. + :return: instance of method :class:`aiogram.methods.send_invoice.SendInvoice` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendInvoice + + return SendInvoice( + chat_id=self.chat.id, + title=title, + description=description, + payload=payload, + provider_token=provider_token, + currency=currency, + prices=prices, + message_thread_id=message_thread_id, + max_tip_amount=max_tip_amount, + suggested_tip_amounts=suggested_tip_amounts, + start_parameter=start_parameter, + provider_data=provider_data, + photo_url=photo_url, + photo_size=photo_size, + photo_width=photo_width, + photo_height=photo_height, + need_name=need_name, + need_phone_number=need_phone_number, + need_email=need_email, + need_shipping_address=need_shipping_address, + send_phone_number_to_provider=send_phone_number_to_provider, + send_email_to_provider=send_email_to_provider, + is_flexible=is_flexible, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_location( + self, + latitude: float, + longitude: float, + message_thread_id: Optional[int] = None, + horizontal_accuracy: Optional[float] = None, + live_period: Optional[int] = None, + heading: Optional[int] = None, + proximity_alert_radius: Optional[int] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendLocation: + """ + Shortcut for method :class:`aiogram.methods.send_location.SendLocation` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send point on the map. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendlocation + + :param latitude: Latitude of the location + :param longitude: Longitude of the location + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param horizontal_accuracy: The radius of uncertainty for the location, measured in meters; 0-1500 + :param live_period: Period in seconds for which the location will be updated (see `Live Locations `_, should be between 60 and 86400. + :param heading: For live locations, a direction in which the user is moving, in degrees. Must be between 1 and 360 if specified. + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_location.SendLocation` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendLocation + + return SendLocation( + chat_id=self.chat.id, + latitude=latitude, + longitude=longitude, + message_thread_id=message_thread_id, + horizontal_accuracy=horizontal_accuracy, + live_period=live_period, + heading=heading, + proximity_alert_radius=proximity_alert_radius, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_media_group( + self, + media: List[Union[InputMediaAudio, InputMediaDocument, InputMediaPhoto, InputMediaVideo]], + message_thread_id: Optional[int] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + **kwargs: Any, + ) -> SendMediaGroup: + """ + Shortcut for method :class:`aiogram.methods.send_media_group.SendMediaGroup` + will automatically fill method attributes: + + - :code:`chat_id` + + 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. + + Source: https://core.telegram.org/bots/api#sendmediagroup + + :param media: A JSON-serialized array describing messages to be sent, must include 2-10 items + :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 reply_to_message_id: If the messages are a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :return: instance of method :class:`aiogram.methods.send_media_group.SendMediaGroup` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendMediaGroup + + return SendMediaGroup( + chat_id=self.chat.id, + media=media, + message_thread_id=message_thread_id, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + **kwargs, + ).as_(self._bot) + + def answer_photo( + self, + photo: Union[InputFile, str], + message_thread_id: Optional[int] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + has_spoiler: Optional[bool] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendPhoto: + """ + Shortcut for method :class:`aiogram.methods.send_photo.SendPhoto` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send photos. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendphoto + + :param photo: Photo to send. Pass a file_id as String to send a photo that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a photo from the Internet, or upload a new photo using multipart/form-data. The photo must be at most 10 MB in size. The photo's width and height must not exceed 10000 in total. Width and height ratio must be at most 20. :ref:`More information on Sending Files » ` + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param caption: Photo caption (may also be used when resending photos by *file_id*), 0-1024 characters after entities parsing + :param parse_mode: Mode for parsing entities in the photo caption. See `formatting options `_ for more details. + :param caption_entities: A JSON-serialized list of special entities that appear in the caption, which can be specified instead of *parse_mode* + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_photo.SendPhoto` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendPhoto + + return SendPhoto( + chat_id=self.chat.id, + photo=photo, + message_thread_id=message_thread_id, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + has_spoiler=has_spoiler, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_poll( + self, + question: str, + options: List[str], + message_thread_id: Optional[int] = 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[str] = UNSET_PARSE_MODE, + 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[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendPoll: + """ + Shortcut for method :class:`aiogram.methods.send_poll.SendPoll` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send a native poll. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendpoll + + :param question: Poll question, 1-300 characters + :param options: A JSON-serialized list of answer options, 2-10 strings 1-100 characters each + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param is_anonymous: :code:`True`, if the poll needs to be anonymous, defaults to :code:`True` + :param type: Poll type, 'quiz' or 'regular', defaults to 'regular' + :param allows_multiple_answers: :code:`True`, if the poll allows multiple answers, ignored for polls in quiz mode, defaults to :code:`False` + :param correct_option_id: 0-based identifier of the correct answer option, required for polls in quiz mode + :param explanation: Text that is shown when a user chooses an incorrect answer or taps on the lamp icon in a quiz-style poll, 0-200 characters with at most 2 line feeds after entities parsing + :param explanation_parse_mode: Mode for parsing entities in the explanation. See `formatting options `_ for more details. + :param explanation_entities: A JSON-serialized list of special entities that appear in the poll explanation, which can be specified instead of *parse_mode* + :param open_period: Amount of time in seconds the poll will be active after creation, 5-600. Can't be used together with *close_date*. + :param close_date: Point in time (Unix timestamp) when the poll will be automatically closed. Must be at least 5 and no more than 600 seconds in the future. Can't be used together with *open_period*. + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_poll.SendPoll` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendPoll + + return SendPoll( + chat_id=self.chat.id, + question=question, + options=options, + message_thread_id=message_thread_id, + is_anonymous=is_anonymous, + type=type, + allows_multiple_answers=allows_multiple_answers, + correct_option_id=correct_option_id, + explanation=explanation, + explanation_parse_mode=explanation_parse_mode, + explanation_entities=explanation_entities, + open_period=open_period, + close_date=close_date, + is_closed=is_closed, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_dice( + self, + message_thread_id: Optional[int] = None, + emoji: Optional[str] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendDice: + """ + Shortcut for method :class:`aiogram.methods.send_dice.SendDice` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send an animated emoji that will display a random value. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#senddice + + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_dice.SendDice` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendDice + + return SendDice( + chat_id=self.chat.id, + message_thread_id=message_thread_id, + emoji=emoji, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_sticker( + self, + sticker: Union[InputFile, str], + message_thread_id: Optional[int] = None, + emoji: Optional[str] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendSticker: + """ + Shortcut for method :class:`aiogram.methods.send_sticker.SendSticker` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send static .WEBP, `animated `_ .TGS, or `video `_ .WEBM stickers. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendsticker + + :param sticker: Sticker to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a .WEBP sticker from the Internet, or upload a new .WEBP or .TGS sticker using multipart/form-data. :ref:`More information on Sending Files » `. Video stickers can only be sent by a file_id. Animated stickers can't be sent via an HTTP URL. + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_sticker.SendSticker` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendSticker + + return SendSticker( + chat_id=self.chat.id, + sticker=sticker, + message_thread_id=message_thread_id, + emoji=emoji, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_venue( + self, + latitude: float, + longitude: float, + title: str, + address: str, + message_thread_id: Optional[int] = None, + foursquare_id: Optional[str] = None, + foursquare_type: Optional[str] = None, + google_place_id: Optional[str] = None, + google_place_type: Optional[str] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendVenue: + """ + Shortcut for method :class:`aiogram.methods.send_venue.SendVenue` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send information about a venue. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendvenue + + :param latitude: Latitude of the venue + :param longitude: Longitude of the venue + :param title: Name of the venue + :param address: Address of the venue + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param foursquare_id: Foursquare identifier of the venue + :param foursquare_type: Foursquare type of the venue, if known. (For example, 'arts_entertainment/default', 'arts_entertainment/aquarium' or 'food/icecream'.) + :param google_place_id: Google Places identifier of the venue + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_venue.SendVenue` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendVenue + + return SendVenue( + chat_id=self.chat.id, + latitude=latitude, + longitude=longitude, + title=title, + address=address, + message_thread_id=message_thread_id, + foursquare_id=foursquare_id, + foursquare_type=foursquare_type, + google_place_id=google_place_id, + google_place_type=google_place_type, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_video( + self, + video: Union[InputFile, str], + message_thread_id: Optional[int] = None, + duration: Optional[int] = None, + width: Optional[int] = None, + height: Optional[int] = None, + thumbnail: Optional[Union[InputFile, str]] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + has_spoiler: Optional[bool] = None, + supports_streaming: Optional[bool] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendVideo: + """ + Shortcut for method :class:`aiogram.methods.send_video.SendVideo` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send video files, Telegram clients support MPEG4 videos (other formats may be sent as :class:`aiogram.types.document.Document`). On success, the sent :class:`aiogram.types.message.Message` is returned. Bots can currently send video files of up to 50 MB in size, this limit may be changed in the future. + + Source: https://core.telegram.org/bots/api#sendvideo + + :param video: Video to send. Pass a file_id as String to send a video that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a video from the Internet, or upload a new video using multipart/form-data. :ref:`More information on Sending Files » ` + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param duration: Duration of sent video in seconds + :param width: Video width + :param height: Video height + :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 caption: Video caption (may also be used when resending videos by *file_id*), 0-1024 characters after entities parsing + :param parse_mode: Mode for parsing entities in the video caption. See `formatting options `_ for more details. + :param caption_entities: A JSON-serialized list of special entities that appear in the caption, which can be specified instead of *parse_mode* + :param has_spoiler: Pass :code:`True` if the video needs to be covered with a spoiler animation + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_video.SendVideo` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendVideo + + return SendVideo( + chat_id=self.chat.id, + video=video, + message_thread_id=message_thread_id, + duration=duration, + width=width, + height=height, + thumbnail=thumbnail, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + has_spoiler=has_spoiler, + supports_streaming=supports_streaming, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_video_note( + self, + video_note: Union[InputFile, str], + message_thread_id: Optional[int] = None, + duration: Optional[int] = None, + length: Optional[int] = None, + thumbnail: Optional[Union[InputFile, str]] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendVideoNote: + """ + Shortcut for method :class:`aiogram.methods.send_video_note.SendVideoNote` + will automatically fill method attributes: + + - :code:`chat_id` + + As of `v.4.0 `_, Telegram clients support rounded square MPEG4 videos of up to 1 minute long. Use this method to send video messages. On success, the sent :class:`aiogram.types.message.Message` is returned. + + Source: https://core.telegram.org/bots/api#sendvideonote + + :param video_note: Video note to send. Pass a file_id as String to send a video note that exists on the Telegram servers (recommended) or upload a new video using multipart/form-data. :ref:`More information on Sending Files » `. Sending video notes by a URL is currently unsupported + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param duration: Duration of sent video in seconds + :param length: Video width and height, i.e. diameter of the video message + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_video_note.SendVideoNote` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendVideoNote + + return SendVideoNote( + chat_id=self.chat.id, + video_note=video_note, + message_thread_id=message_thread_id, + duration=duration, + length=length, + thumbnail=thumbnail, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) + + def answer_voice( + self, + voice: Union[InputFile, str], + message_thread_id: Optional[int] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + duration: Optional[int] = None, + disable_notification: Optional[bool] = None, + protect_content: Optional[bool] = UNSET_PROTECT_CONTENT, + reply_to_message_id: Optional[int] = None, + allow_sending_without_reply: Optional[bool] = None, + reply_markup: Optional[ + Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply] + ] = None, + **kwargs: Any, + ) -> SendVoice: + """ + Shortcut for method :class:`aiogram.methods.send_voice.SendVoice` + will automatically fill method attributes: + + - :code:`chat_id` + + Use this method to send audio files, if you want Telegram clients to display the file as a playable voice message. For this to work, your audio must be in an .OGG file encoded with OPUS (other formats may be sent as :class:`aiogram.types.audio.Audio` or :class:`aiogram.types.document.Document`). On success, the sent :class:`aiogram.types.message.Message` is returned. Bots can currently send voice messages of up to 50 MB in size, this limit may be changed in the future. + + Source: https://core.telegram.org/bots/api#sendvoice + + :param voice: Audio file to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), 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 » ` + :param message_thread_id: Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + :param caption: Voice message caption, 0-1024 characters after entities parsing + :param parse_mode: Mode for parsing entities in the voice message caption. See `formatting options `_ for more details. + :param caption_entities: A JSON-serialized list of special entities that appear in the caption, which can be specified instead of *parse_mode* + :param duration: Duration of the voice message in seconds + :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 reply_to_message_id: If the message is a reply, ID of the original message + :param allow_sending_without_reply: Pass :code:`True` if the message should be sent even if the specified replied-to message is not found + :param reply_markup: Additional interface options. A JSON-serialized object for an `inline keyboard `_, `custom reply keyboard `_, instructions to remove reply keyboard or to force a reply from the user. + :return: instance of method :class:`aiogram.methods.send_voice.SendVoice` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import SendVoice + + return SendVoice( + chat_id=self.chat.id, + voice=voice, + message_thread_id=message_thread_id, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + duration=duration, + disable_notification=disable_notification, + protect_content=protect_content, + reply_to_message_id=reply_to_message_id, + allow_sending_without_reply=allow_sending_without_reply, + reply_markup=reply_markup, + **kwargs, + ).as_(self._bot) diff --git a/aiogram/types/chat_permissions.py b/aiogram/types/chat_permissions.py index 762fe208..671ebc26 100644 --- a/aiogram/types/chat_permissions.py +++ b/aiogram/types/chat_permissions.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import Optional +from typing import TYPE_CHECKING, Any, Optional from .base import MutableTelegramObject @@ -40,3 +40,48 @@ class ChatPermissions(MutableTelegramObject): """*Optional*. :code:`True`, if the user is allowed to pin messages. Ignored in public supergroups""" can_manage_topics: Optional[bool] = None """*Optional*. :code:`True`, if the user is allowed to create forum topics. If omitted defaults to the value of can_pin_messages""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + can_send_messages: Optional[bool] = None, + can_send_audios: Optional[bool] = None, + can_send_documents: Optional[bool] = None, + can_send_photos: Optional[bool] = None, + can_send_videos: Optional[bool] = None, + can_send_video_notes: Optional[bool] = None, + can_send_voice_notes: Optional[bool] = None, + can_send_polls: Optional[bool] = None, + can_send_other_messages: Optional[bool] = None, + can_add_web_page_previews: Optional[bool] = None, + can_change_info: Optional[bool] = None, + can_invite_users: Optional[bool] = None, + can_pin_messages: Optional[bool] = None, + can_manage_topics: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + can_send_messages=can_send_messages, + can_send_audios=can_send_audios, + can_send_documents=can_send_documents, + can_send_photos=can_send_photos, + can_send_videos=can_send_videos, + can_send_video_notes=can_send_video_notes, + can_send_voice_notes=can_send_voice_notes, + can_send_polls=can_send_polls, + can_send_other_messages=can_send_other_messages, + can_add_web_page_previews=can_add_web_page_previews, + can_change_info=can_change_info, + can_invite_users=can_invite_users, + can_pin_messages=can_pin_messages, + can_manage_topics=can_manage_topics, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/chat_photo.py b/aiogram/types/chat_photo.py index a3f95f94..1a64aebf 100644 --- a/aiogram/types/chat_photo.py +++ b/aiogram/types/chat_photo.py @@ -1,5 +1,7 @@ from __future__ import annotations +from typing import TYPE_CHECKING, Any + from .base import TelegramObject @@ -18,3 +20,28 @@ class ChatPhoto(TelegramObject): """File identifier of big (640x640) chat photo. This file_id can be used only for photo download and only for as long as the photo is not changed.""" big_file_unique_id: str """Unique file identifier of big (640x640) chat photo, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + small_file_id: str, + small_file_unique_id: str, + big_file_id: str, + big_file_unique_id: str, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + small_file_id=small_file_id, + small_file_unique_id=small_file_unique_id, + big_file_id=big_file_id, + big_file_unique_id=big_file_unique_id, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/chat_shared.py b/aiogram/types/chat_shared.py index a3f3e7a8..eb244c0a 100644 --- a/aiogram/types/chat_shared.py +++ b/aiogram/types/chat_shared.py @@ -1,3 +1,5 @@ +from typing import TYPE_CHECKING, Any + from aiogram.types import TelegramObject @@ -12,3 +14,16 @@ class ChatShared(TelegramObject): """Identifier of the request""" chat_id: int """Identifier of the shared chat. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot may not have access to the chat and could be unable to use this identifier, unless the chat is already known to the bot by some other means.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, request_id: int, chat_id: int, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(request_id=request_id, chat_id=chat_id, **__pydantic_kwargs) diff --git a/aiogram/types/chosen_inline_result.py b/aiogram/types/chosen_inline_result.py index 0ec211f7..510a0e12 100644 --- a/aiogram/types/chosen_inline_result.py +++ b/aiogram/types/chosen_inline_result.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from pydantic import Field @@ -29,3 +29,30 @@ class ChosenInlineResult(TelegramObject): """*Optional*. Sender location, only for bots that require user location""" inline_message_id: Optional[str] = None """*Optional*. Identifier of the sent inline message. Available only if there is an `inline keyboard `_ attached to the message. Will be also received in `callback queries `_ and can be used to `edit `_ the message.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + result_id: str, + from_user: User, + query: str, + location: Optional[Location] = None, + inline_message_id: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + result_id=result_id, + from_user=from_user, + query=query, + location=location, + inline_message_id=inline_message_id, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/contact.py b/aiogram/types/contact.py index 732b770d..1fb7f834 100644 --- a/aiogram/types/contact.py +++ b/aiogram/types/contact.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramObject @@ -22,3 +22,30 @@ class Contact(TelegramObject): """*Optional*. Contact's user identifier in Telegram. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier.""" vcard: Optional[str] = None """*Optional*. Additional data about the contact in the form of a `vCard `_""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + phone_number: str, + first_name: str, + last_name: Optional[str] = None, + user_id: Optional[int] = None, + vcard: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + phone_number=phone_number, + first_name=first_name, + last_name=last_name, + user_id=user_id, + vcard=vcard, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/custom.py b/aiogram/types/custom.py new file mode 100644 index 00000000..5098caa6 --- /dev/null +++ b/aiogram/types/custom.py @@ -0,0 +1,14 @@ +from datetime import datetime + +from pydantic import PlainSerializer +from typing_extensions import Annotated + +# Make datetime compatible with Telegram Bot API (unixtime) +DateTime = Annotated[ + datetime, + PlainSerializer( + func=lambda dt: int(dt.timestamp()), + return_type=int, + when_used="json-unless-none", + ), +] diff --git a/aiogram/types/dice.py b/aiogram/types/dice.py index 00356457..56b84f43 100644 --- a/aiogram/types/dice.py +++ b/aiogram/types/dice.py @@ -1,5 +1,7 @@ from __future__ import annotations +from typing import TYPE_CHECKING, Any + from .base import TelegramObject @@ -15,6 +17,19 @@ class Dice(TelegramObject): value: int """Value of the dice, 1-6 for '🎲', '🎯' and '🎳' base emoji, 1-5 for '🏀' and '⚽' base emoji, 1-64 for '🎰' base emoji""" + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, emoji: str, value: int, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(emoji=emoji, value=value, **__pydantic_kwargs) + class DiceEmoji: DICE = "🎲" diff --git a/aiogram/types/document.py b/aiogram/types/document.py index 837bf4ec..83139076 100644 --- a/aiogram/types/document.py +++ b/aiogram/types/document.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramObject @@ -27,3 +27,32 @@ class Document(TelegramObject): """*Optional*. MIME type of the file as defined by sender""" file_size: Optional[int] = None """*Optional*. File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + file_id: str, + file_unique_id: str, + thumbnail: Optional[PhotoSize] = None, + file_name: Optional[str] = None, + mime_type: Optional[str] = None, + file_size: Optional[int] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + file_id=file_id, + file_unique_id=file_unique_id, + thumbnail=thumbnail, + file_name=file_name, + mime_type=mime_type, + file_size=file_size, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/encrypted_credentials.py b/aiogram/types/encrypted_credentials.py index d14c2560..ca03e2a4 100644 --- a/aiogram/types/encrypted_credentials.py +++ b/aiogram/types/encrypted_credentials.py @@ -1,5 +1,7 @@ from __future__ import annotations +from typing import TYPE_CHECKING, Any + from .base import TelegramObject @@ -16,3 +18,16 @@ class EncryptedCredentials(TelegramObject): """Base64-encoded data hash for data authentication""" secret: str """Base64-encoded secret, encrypted with the bot's public RSA key, required for data decryption""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, data: str, hash: str, secret: str, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(data=data, hash=hash, secret=secret, **__pydantic_kwargs) diff --git a/aiogram/types/encrypted_passport_element.py b/aiogram/types/encrypted_passport_element.py index 27506298..5594e700 100644 --- a/aiogram/types/encrypted_passport_element.py +++ b/aiogram/types/encrypted_passport_element.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Any, List, Optional from .base import TelegramObject @@ -35,3 +35,40 @@ class EncryptedPassportElement(TelegramObject): """*Optional*. Encrypted file with the selfie of the user holding a document, provided by the user; available for 'passport', 'driver_license', 'identity_card' and 'internal_passport'. The file can be decrypted and verified using the accompanying :class:`aiogram.types.encrypted_credentials.EncryptedCredentials`.""" translation: Optional[List[PassportFile]] = None """*Optional*. Array of encrypted files with translated versions of documents provided by the user. Available if requested for 'passport', 'driver_license', 'identity_card', 'internal_passport', 'utility_bill', 'bank_statement', 'rental_agreement', 'passport_registration' and 'temporary_registration' types. Files can be decrypted and verified using the accompanying :class:`aiogram.types.encrypted_credentials.EncryptedCredentials`.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: str, + hash: str, + data: Optional[str] = None, + phone_number: Optional[str] = None, + email: Optional[str] = None, + files: Optional[List[PassportFile]] = None, + front_side: Optional[PassportFile] = None, + reverse_side: Optional[PassportFile] = None, + selfie: Optional[PassportFile] = None, + translation: Optional[List[PassportFile]] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + hash=hash, + data=data, + phone_number=phone_number, + email=email, + files=files, + front_side=front_side, + reverse_side=reverse_side, + selfie=selfie, + translation=translation, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/error_event.py b/aiogram/types/error_event.py index 1667d9e9..e5eafc9c 100644 --- a/aiogram/types/error_event.py +++ b/aiogram/types/error_event.py @@ -1,19 +1,14 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any -from aiogram.types.base import MutableTelegramObject +from aiogram.types.base import TelegramObject if TYPE_CHECKING: from .update import Update -class _ErrorEvent(MutableTelegramObject): - class Config: - arbitrary_types_allowed = True - - -class ErrorEvent(_ErrorEvent): +class ErrorEvent(TelegramObject): """ Internal event, should be used to receive errors while processing Updates from Telegram @@ -24,3 +19,10 @@ class ErrorEvent(_ErrorEvent): """Received update""" exception: Exception """Exception""" + + if TYPE_CHECKING: + + def __init__( + __pydantic_self__, *, update: Update, exception: Exception, **__pydantic_kwargs: Any + ) -> None: + super().__init__(update=update, exception=exception, **__pydantic_kwargs) diff --git a/aiogram/types/file.py b/aiogram/types/file.py index 3e6e769e..252c230b 100644 --- a/aiogram/types/file.py +++ b/aiogram/types/file.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramObject @@ -22,3 +22,28 @@ class File(TelegramObject): """*Optional*. File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value.""" file_path: Optional[str] = None """*Optional*. File path. Use :code:`https://api.telegram.org/file/bot/` to get the file.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + file_id: str, + file_unique_id: str, + file_size: Optional[int] = None, + file_path: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + file_id=file_id, + file_unique_id=file_unique_id, + file_size=file_size, + file_path=file_path, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/force_reply.py b/aiogram/types/force_reply.py index c27af31e..eb00f35b 100644 --- a/aiogram/types/force_reply.py +++ b/aiogram/types/force_reply.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal, Optional from .base import MutableTelegramObject @@ -21,9 +19,32 @@ class ForceReply(MutableTelegramObject): Source: https://core.telegram.org/bots/api#forcereply """ - force_reply: bool = Field(True, const=True) + force_reply: Literal[True] = True """Shows reply interface to the user, as if they manually selected the bot's message and tapped 'Reply'""" input_field_placeholder: Optional[str] = None """*Optional*. The placeholder to be shown in the input field when the reply is active; 1-64 characters""" selective: Optional[bool] = None """*Optional*. Use this parameter if you want to force reply from specific users only. Targets: 1) users that are @mentioned in the *text* of the :class:`aiogram.types.message.Message` object; 2) if the bot's message is a reply (has *reply_to_message_id*), sender of the original message.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + force_reply: Literal[True] = True, + input_field_placeholder: Optional[str] = None, + selective: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + force_reply=force_reply, + input_field_placeholder=input_field_placeholder, + selective=selective, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/forum_topic.py b/aiogram/types/forum_topic.py index 09592077..a6464bc1 100644 --- a/aiogram/types/forum_topic.py +++ b/aiogram/types/forum_topic.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramObject @@ -20,3 +20,28 @@ class ForumTopic(TelegramObject): """Color of the topic icon in RGB format""" icon_custom_emoji_id: Optional[str] = None """*Optional*. Unique identifier of the custom emoji shown as the topic icon""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + message_thread_id: int, + name: str, + icon_color: int, + icon_custom_emoji_id: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + message_thread_id=message_thread_id, + name=name, + icon_color=icon_color, + icon_custom_emoji_id=icon_custom_emoji_id, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/forum_topic_created.py b/aiogram/types/forum_topic_created.py index 25448cf8..513df956 100644 --- a/aiogram/types/forum_topic_created.py +++ b/aiogram/types/forum_topic_created.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramObject @@ -18,3 +18,26 @@ class ForumTopicCreated(TelegramObject): """Color of the topic icon in RGB format""" icon_custom_emoji_id: Optional[str] = None """*Optional*. Unique identifier of the custom emoji shown as the topic icon""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + name: str, + icon_color: int, + icon_custom_emoji_id: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + name=name, + icon_color=icon_color, + icon_custom_emoji_id=icon_custom_emoji_id, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/forum_topic_edited.py b/aiogram/types/forum_topic_edited.py index 52b4f893..b7b61965 100644 --- a/aiogram/types/forum_topic_edited.py +++ b/aiogram/types/forum_topic_edited.py @@ -1,4 +1,4 @@ -from typing import Optional +from typing import TYPE_CHECKING, Any, Optional from aiogram.types import TelegramObject @@ -14,3 +14,22 @@ class ForumTopicEdited(TelegramObject): """*Optional*. New name of the topic, if it was edited""" icon_custom_emoji_id: Optional[str] = None """*Optional*. New identifier of the custom emoji shown as the topic icon, if it was edited; an empty string if the icon was removed""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + name: Optional[str] = None, + icon_custom_emoji_id: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + name=name, icon_custom_emoji_id=icon_custom_emoji_id, **__pydantic_kwargs + ) diff --git a/aiogram/types/game.py b/aiogram/types/game.py index f9b03bd1..294f26b9 100644 --- a/aiogram/types/game.py +++ b/aiogram/types/game.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Any, List, Optional from .base import TelegramObject @@ -29,3 +29,32 @@ class Game(TelegramObject): """*Optional*. Special entities that appear in *text*, such as usernames, URLs, bot commands, etc.""" animation: Optional[Animation] = None """*Optional*. Animation that will be displayed in the game message in chats. Upload via `BotFather `_""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + title: str, + description: str, + photo: List[PhotoSize], + text: Optional[str] = None, + text_entities: Optional[List[MessageEntity]] = None, + animation: Optional[Animation] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + title=title, + description=description, + photo=photo, + text=text, + text_entities=text_entities, + animation=animation, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/game_high_score.py b/aiogram/types/game_high_score.py index 30ec941a..5364be6e 100644 --- a/aiogram/types/game_high_score.py +++ b/aiogram/types/game_high_score.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any from .base import TelegramObject @@ -24,3 +24,16 @@ class GameHighScore(TelegramObject): """User""" score: int """Score""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, position: int, user: User, score: int, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(position=position, user=user, score=score, **__pydantic_kwargs) diff --git a/aiogram/types/inline_keyboard_button.py b/aiogram/types/inline_keyboard_button.py index 977fae8d..d2108e93 100644 --- a/aiogram/types/inline_keyboard_button.py +++ b/aiogram/types/inline_keyboard_button.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from .base import MutableTelegramObject @@ -38,3 +38,40 @@ class InlineKeyboardButton(MutableTelegramObject): """*Optional*. Description of the game that will be launched when the user presses the button.""" pay: Optional[bool] = None """*Optional*. Specify :code:`True`, to send a `Pay button `_.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + text: str, + url: Optional[str] = None, + callback_data: Optional[str] = None, + web_app: Optional[WebAppInfo] = None, + login_url: Optional[LoginUrl] = None, + switch_inline_query: Optional[str] = None, + switch_inline_query_current_chat: Optional[str] = None, + switch_inline_query_chosen_chat: Optional[SwitchInlineQueryChosenChat] = None, + callback_game: Optional[CallbackGame] = None, + pay: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + text=text, + url=url, + callback_data=callback_data, + web_app=web_app, + login_url=login_url, + switch_inline_query=switch_inline_query, + switch_inline_query_current_chat=switch_inline_query_current_chat, + switch_inline_query_chosen_chat=switch_inline_query_chosen_chat, + callback_game=callback_game, + pay=pay, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/inline_keyboard_markup.py b/aiogram/types/inline_keyboard_markup.py index 473e292c..e8987def 100644 --- a/aiogram/types/inline_keyboard_markup.py +++ b/aiogram/types/inline_keyboard_markup.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List +from typing import TYPE_CHECKING, Any, List from .base import MutableTelegramObject @@ -18,3 +18,19 @@ class InlineKeyboardMarkup(MutableTelegramObject): inline_keyboard: List[List[InlineKeyboardButton]] """Array of button rows, each represented by an Array of :class:`aiogram.types.inline_keyboard_button.InlineKeyboardButton` objects""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + inline_keyboard: List[List[InlineKeyboardButton]], + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(inline_keyboard=inline_keyboard, **__pydantic_kwargs) diff --git a/aiogram/types/inline_query.py b/aiogram/types/inline_query.py index 55eab72f..a0cad317 100644 --- a/aiogram/types/inline_query.py +++ b/aiogram/types/inline_query.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Any, List, Optional +from typing import TYPE_CHECKING, Any, List, Optional, Union from pydantic import Field @@ -8,7 +8,26 @@ from .base import TelegramObject if TYPE_CHECKING: from ..methods import AnswerInlineQuery - from .inline_query_result import InlineQueryResult + from .inline_query_result_article import InlineQueryResultArticle + from .inline_query_result_audio import InlineQueryResultAudio + from .inline_query_result_cached_audio import InlineQueryResultCachedAudio + from .inline_query_result_cached_document import InlineQueryResultCachedDocument + from .inline_query_result_cached_gif import InlineQueryResultCachedGif + from .inline_query_result_cached_mpeg4_gif import InlineQueryResultCachedMpeg4Gif + from .inline_query_result_cached_photo import InlineQueryResultCachedPhoto + from .inline_query_result_cached_sticker import InlineQueryResultCachedSticker + from .inline_query_result_cached_video import InlineQueryResultCachedVideo + from .inline_query_result_cached_voice import InlineQueryResultCachedVoice + from .inline_query_result_contact import InlineQueryResultContact + from .inline_query_result_document import InlineQueryResultDocument + from .inline_query_result_game import InlineQueryResultGame + from .inline_query_result_gif import InlineQueryResultGif + from .inline_query_result_location import InlineQueryResultLocation + from .inline_query_result_mpeg4_gif import InlineQueryResultMpeg4Gif + from .inline_query_result_photo import InlineQueryResultPhoto + from .inline_query_result_venue import InlineQueryResultVenue + from .inline_query_result_video import InlineQueryResultVideo + from .inline_query_result_voice import InlineQueryResultVoice from .inline_query_results_button import InlineQueryResultsButton from .location import Location from .user import User @@ -34,9 +53,61 @@ class InlineQuery(TelegramObject): location: Optional[Location] = None """*Optional*. Sender location, only for bots that request user location""" + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + id: str, + from_user: User, + query: str, + offset: str, + chat_type: Optional[str] = None, + location: Optional[Location] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + id=id, + from_user=from_user, + query=query, + offset=offset, + chat_type=chat_type, + location=location, + **__pydantic_kwargs, + ) + def answer( self, - results: List[InlineQueryResult], + results: List[ + Union[ + InlineQueryResultCachedAudio, + InlineQueryResultCachedDocument, + InlineQueryResultCachedGif, + InlineQueryResultCachedMpeg4Gif, + InlineQueryResultCachedPhoto, + InlineQueryResultCachedSticker, + InlineQueryResultCachedVideo, + InlineQueryResultCachedVoice, + InlineQueryResultArticle, + InlineQueryResultAudio, + InlineQueryResultContact, + InlineQueryResultGame, + InlineQueryResultDocument, + InlineQueryResultGif, + InlineQueryResultLocation, + InlineQueryResultMpeg4Gif, + InlineQueryResultPhoto, + InlineQueryResultVenue, + InlineQueryResultVideo, + InlineQueryResultVoice, + ] + ], cache_time: Optional[int] = None, is_personal: Optional[bool] = None, next_offset: Optional[str] = None, @@ -81,4 +152,4 @@ class InlineQuery(TelegramObject): switch_pm_parameter=switch_pm_parameter, switch_pm_text=switch_pm_text, **kwargs, - ) + ).as_(self._bot) diff --git a/aiogram/types/inline_query_result_article.py b/aiogram/types/inline_query_result_article.py index dd65b595..c9987382 100644 --- a/aiogram/types/inline_query_result_article.py +++ b/aiogram/types/inline_query_result_article.py @@ -1,15 +1,17 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal, Optional, Union from ..enums import InlineQueryResultType from .inline_query_result import InlineQueryResult if TYPE_CHECKING: from .inline_keyboard_markup import InlineKeyboardMarkup - from .input_message_content import InputMessageContent + from .input_contact_message_content import InputContactMessageContent + from .input_invoice_message_content import InputInvoiceMessageContent + from .input_location_message_content import InputLocationMessageContent + from .input_text_message_content import InputTextMessageContent + from .input_venue_message_content import InputVenueMessageContent class InlineQueryResultArticle(InlineQueryResult): @@ -19,13 +21,19 @@ class InlineQueryResultArticle(InlineQueryResult): Source: https://core.telegram.org/bots/api#inlinequeryresultarticle """ - type: str = Field(InlineQueryResultType.ARTICLE, const=True) + type: Literal[InlineQueryResultType.ARTICLE] = InlineQueryResultType.ARTICLE """Type of the result, must be *article*""" id: str """Unique identifier for this result, 1-64 Bytes""" title: str """Title of the result""" - input_message_content: InputMessageContent + input_message_content: Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] """Content of the message to be sent""" reply_markup: Optional[InlineKeyboardMarkup] = None """*Optional*. `Inline keyboard `_ attached to the message""" @@ -41,3 +49,48 @@ class InlineQueryResultArticle(InlineQueryResult): """*Optional*. Thumbnail width""" thumbnail_height: Optional[int] = None """*Optional*. Thumbnail height""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InlineQueryResultType.ARTICLE] = InlineQueryResultType.ARTICLE, + id: str, + title: str, + input_message_content: Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ], + reply_markup: Optional[InlineKeyboardMarkup] = None, + url: Optional[str] = None, + hide_url: Optional[bool] = None, + description: Optional[str] = None, + thumbnail_url: Optional[str] = None, + thumbnail_width: Optional[int] = None, + thumbnail_height: Optional[int] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + id=id, + title=title, + input_message_content=input_message_content, + reply_markup=reply_markup, + url=url, + hide_url=hide_url, + description=description, + thumbnail_url=thumbnail_url, + thumbnail_width=thumbnail_width, + thumbnail_height=thumbnail_height, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/inline_query_result_audio.py b/aiogram/types/inline_query_result_audio.py index 3b830fc8..63f06935 100644 --- a/aiogram/types/inline_query_result_audio.py +++ b/aiogram/types/inline_query_result_audio.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union from ..enums import InlineQueryResultType from .base import UNSET_PARSE_MODE @@ -10,7 +8,11 @@ from .inline_query_result import InlineQueryResult if TYPE_CHECKING: from .inline_keyboard_markup import InlineKeyboardMarkup - from .input_message_content import InputMessageContent + from .input_contact_message_content import InputContactMessageContent + from .input_invoice_message_content import InputInvoiceMessageContent + from .input_location_message_content import InputLocationMessageContent + from .input_text_message_content import InputTextMessageContent + from .input_venue_message_content import InputVenueMessageContent from .message_entity import MessageEntity @@ -22,7 +24,7 @@ class InlineQueryResultAudio(InlineQueryResult): Source: https://core.telegram.org/bots/api#inlinequeryresultaudio """ - type: str = Field(InlineQueryResultType.AUDIO, const=True) + type: Literal[InlineQueryResultType.AUDIO] = InlineQueryResultType.AUDIO """Type of the result, must be *audio*""" id: str """Unique identifier for this result, 1-64 bytes""" @@ -42,5 +44,60 @@ class InlineQueryResultAudio(InlineQueryResult): """*Optional*. Audio duration in seconds""" reply_markup: Optional[InlineKeyboardMarkup] = None """*Optional*. `Inline keyboard `_ attached to the message""" - input_message_content: Optional[InputMessageContent] = None + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None """*Optional*. Content of the message to be sent instead of the audio""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InlineQueryResultType.AUDIO] = InlineQueryResultType.AUDIO, + id: str, + audio_url: str, + title: str, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + performer: Optional[str] = None, + audio_duration: Optional[int] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + id=id, + audio_url=audio_url, + title=title, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + performer=performer, + audio_duration=audio_duration, + reply_markup=reply_markup, + input_message_content=input_message_content, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/inline_query_result_cached_audio.py b/aiogram/types/inline_query_result_cached_audio.py index 8358f723..25aa4d19 100644 --- a/aiogram/types/inline_query_result_cached_audio.py +++ b/aiogram/types/inline_query_result_cached_audio.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union from ..enums import InlineQueryResultType from .base import UNSET_PARSE_MODE @@ -10,7 +8,11 @@ from .inline_query_result import InlineQueryResult if TYPE_CHECKING: from .inline_keyboard_markup import InlineKeyboardMarkup - from .input_message_content import InputMessageContent + from .input_contact_message_content import InputContactMessageContent + from .input_invoice_message_content import InputInvoiceMessageContent + from .input_location_message_content import InputLocationMessageContent + from .input_text_message_content import InputTextMessageContent + from .input_venue_message_content import InputVenueMessageContent from .message_entity import MessageEntity @@ -22,7 +24,7 @@ class InlineQueryResultCachedAudio(InlineQueryResult): Source: https://core.telegram.org/bots/api#inlinequeryresultcachedaudio """ - type: str = Field(InlineQueryResultType.AUDIO, const=True) + type: Literal[InlineQueryResultType.AUDIO] = InlineQueryResultType.AUDIO """Type of the result, must be *audio*""" id: str """Unique identifier for this result, 1-64 bytes""" @@ -36,5 +38,54 @@ class InlineQueryResultCachedAudio(InlineQueryResult): """*Optional*. List of special entities that appear in the caption, which can be specified instead of *parse_mode*""" reply_markup: Optional[InlineKeyboardMarkup] = None """*Optional*. `Inline keyboard `_ attached to the message""" - input_message_content: Optional[InputMessageContent] = None + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None """*Optional*. Content of the message to be sent instead of the audio""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InlineQueryResultType.AUDIO] = InlineQueryResultType.AUDIO, + id: str, + audio_file_id: str, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + id=id, + audio_file_id=audio_file_id, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + reply_markup=reply_markup, + input_message_content=input_message_content, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/inline_query_result_cached_document.py b/aiogram/types/inline_query_result_cached_document.py index 5513971f..2325400d 100644 --- a/aiogram/types/inline_query_result_cached_document.py +++ b/aiogram/types/inline_query_result_cached_document.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union from ..enums import InlineQueryResultType from .base import UNSET_PARSE_MODE @@ -10,7 +8,11 @@ from .inline_query_result import InlineQueryResult if TYPE_CHECKING: from .inline_keyboard_markup import InlineKeyboardMarkup - from .input_message_content import InputMessageContent + from .input_contact_message_content import InputContactMessageContent + from .input_invoice_message_content import InputInvoiceMessageContent + from .input_location_message_content import InputLocationMessageContent + from .input_text_message_content import InputTextMessageContent + from .input_venue_message_content import InputVenueMessageContent from .message_entity import MessageEntity @@ -22,7 +24,7 @@ class InlineQueryResultCachedDocument(InlineQueryResult): Source: https://core.telegram.org/bots/api#inlinequeryresultcacheddocument """ - type: str = Field(InlineQueryResultType.DOCUMENT, const=True) + type: Literal[InlineQueryResultType.DOCUMENT] = InlineQueryResultType.DOCUMENT """Type of the result, must be *document*""" id: str """Unique identifier for this result, 1-64 bytes""" @@ -40,5 +42,58 @@ class InlineQueryResultCachedDocument(InlineQueryResult): """*Optional*. List of special entities that appear in the caption, which can be specified instead of *parse_mode*""" reply_markup: Optional[InlineKeyboardMarkup] = None """*Optional*. `Inline keyboard `_ attached to the message""" - input_message_content: Optional[InputMessageContent] = None + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None """*Optional*. Content of the message to be sent instead of the file""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InlineQueryResultType.DOCUMENT] = InlineQueryResultType.DOCUMENT, + id: str, + title: str, + document_file_id: str, + description: Optional[str] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + id=id, + title=title, + document_file_id=document_file_id, + description=description, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + reply_markup=reply_markup, + input_message_content=input_message_content, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/inline_query_result_cached_gif.py b/aiogram/types/inline_query_result_cached_gif.py index 7aa5c535..aca612c9 100644 --- a/aiogram/types/inline_query_result_cached_gif.py +++ b/aiogram/types/inline_query_result_cached_gif.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union from ..enums import InlineQueryResultType from .base import UNSET_PARSE_MODE @@ -10,7 +8,11 @@ from .inline_query_result import InlineQueryResult if TYPE_CHECKING: from .inline_keyboard_markup import InlineKeyboardMarkup - from .input_message_content import InputMessageContent + from .input_contact_message_content import InputContactMessageContent + from .input_invoice_message_content import InputInvoiceMessageContent + from .input_location_message_content import InputLocationMessageContent + from .input_text_message_content import InputTextMessageContent + from .input_venue_message_content import InputVenueMessageContent from .message_entity import MessageEntity @@ -21,7 +23,7 @@ class InlineQueryResultCachedGif(InlineQueryResult): Source: https://core.telegram.org/bots/api#inlinequeryresultcachedgif """ - type: str = Field(InlineQueryResultType.GIF, const=True) + type: Literal[InlineQueryResultType.GIF] = InlineQueryResultType.GIF """Type of the result, must be *gif*""" id: str """Unique identifier for this result, 1-64 bytes""" @@ -37,5 +39,56 @@ class InlineQueryResultCachedGif(InlineQueryResult): """*Optional*. List of special entities that appear in the caption, which can be specified instead of *parse_mode*""" reply_markup: Optional[InlineKeyboardMarkup] = None """*Optional*. `Inline keyboard `_ attached to the message""" - input_message_content: Optional[InputMessageContent] = None + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None """*Optional*. Content of the message to be sent instead of the GIF animation""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InlineQueryResultType.GIF] = InlineQueryResultType.GIF, + id: str, + gif_file_id: str, + title: Optional[str] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + id=id, + gif_file_id=gif_file_id, + title=title, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + reply_markup=reply_markup, + input_message_content=input_message_content, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/inline_query_result_cached_mpeg4_gif.py b/aiogram/types/inline_query_result_cached_mpeg4_gif.py index 539de025..e08c9ee7 100644 --- a/aiogram/types/inline_query_result_cached_mpeg4_gif.py +++ b/aiogram/types/inline_query_result_cached_mpeg4_gif.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union from ..enums import InlineQueryResultType from .base import UNSET_PARSE_MODE @@ -10,7 +8,11 @@ from .inline_query_result import InlineQueryResult if TYPE_CHECKING: from .inline_keyboard_markup import InlineKeyboardMarkup - from .input_message_content import InputMessageContent + from .input_contact_message_content import InputContactMessageContent + from .input_invoice_message_content import InputInvoiceMessageContent + from .input_location_message_content import InputLocationMessageContent + from .input_text_message_content import InputTextMessageContent + from .input_venue_message_content import InputVenueMessageContent from .message_entity import MessageEntity @@ -21,7 +23,7 @@ class InlineQueryResultCachedMpeg4Gif(InlineQueryResult): Source: https://core.telegram.org/bots/api#inlinequeryresultcachedmpeg4gif """ - type: str = Field(InlineQueryResultType.MPEG4_GIF, const=True) + type: Literal[InlineQueryResultType.MPEG4_GIF] = InlineQueryResultType.MPEG4_GIF """Type of the result, must be *mpeg4_gif*""" id: str """Unique identifier for this result, 1-64 bytes""" @@ -37,5 +39,56 @@ class InlineQueryResultCachedMpeg4Gif(InlineQueryResult): """*Optional*. List of special entities that appear in the caption, which can be specified instead of *parse_mode*""" reply_markup: Optional[InlineKeyboardMarkup] = None """*Optional*. `Inline keyboard `_ attached to the message""" - input_message_content: Optional[InputMessageContent] = None + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None """*Optional*. Content of the message to be sent instead of the video animation""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InlineQueryResultType.MPEG4_GIF] = InlineQueryResultType.MPEG4_GIF, + id: str, + mpeg4_file_id: str, + title: Optional[str] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + id=id, + mpeg4_file_id=mpeg4_file_id, + title=title, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + reply_markup=reply_markup, + input_message_content=input_message_content, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/inline_query_result_cached_photo.py b/aiogram/types/inline_query_result_cached_photo.py index fc892826..2fdb94ff 100644 --- a/aiogram/types/inline_query_result_cached_photo.py +++ b/aiogram/types/inline_query_result_cached_photo.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union from ..enums import InlineQueryResultType from .base import UNSET_PARSE_MODE @@ -10,7 +8,11 @@ from .inline_query_result import InlineQueryResult if TYPE_CHECKING: from .inline_keyboard_markup import InlineKeyboardMarkup - from .input_message_content import InputMessageContent + from .input_contact_message_content import InputContactMessageContent + from .input_invoice_message_content import InputInvoiceMessageContent + from .input_location_message_content import InputLocationMessageContent + from .input_text_message_content import InputTextMessageContent + from .input_venue_message_content import InputVenueMessageContent from .message_entity import MessageEntity @@ -21,7 +23,7 @@ class InlineQueryResultCachedPhoto(InlineQueryResult): Source: https://core.telegram.org/bots/api#inlinequeryresultcachedphoto """ - type: str = Field(InlineQueryResultType.PHOTO, const=True) + type: Literal[InlineQueryResultType.PHOTO] = InlineQueryResultType.PHOTO """Type of the result, must be *photo*""" id: str """Unique identifier for this result, 1-64 bytes""" @@ -39,5 +41,58 @@ class InlineQueryResultCachedPhoto(InlineQueryResult): """*Optional*. List of special entities that appear in the caption, which can be specified instead of *parse_mode*""" reply_markup: Optional[InlineKeyboardMarkup] = None """*Optional*. `Inline keyboard `_ attached to the message""" - input_message_content: Optional[InputMessageContent] = None + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None """*Optional*. Content of the message to be sent instead of the photo""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InlineQueryResultType.PHOTO] = InlineQueryResultType.PHOTO, + id: str, + photo_file_id: str, + title: Optional[str] = None, + description: Optional[str] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + id=id, + photo_file_id=photo_file_id, + title=title, + description=description, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + reply_markup=reply_markup, + input_message_content=input_message_content, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/inline_query_result_cached_sticker.py b/aiogram/types/inline_query_result_cached_sticker.py index 3d75c29c..819c5b31 100644 --- a/aiogram/types/inline_query_result_cached_sticker.py +++ b/aiogram/types/inline_query_result_cached_sticker.py @@ -1,15 +1,17 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal, Optional, Union from ..enums import InlineQueryResultType from .inline_query_result import InlineQueryResult if TYPE_CHECKING: from .inline_keyboard_markup import InlineKeyboardMarkup - from .input_message_content import InputMessageContent + from .input_contact_message_content import InputContactMessageContent + from .input_invoice_message_content import InputInvoiceMessageContent + from .input_location_message_content import InputLocationMessageContent + from .input_text_message_content import InputTextMessageContent + from .input_venue_message_content import InputVenueMessageContent class InlineQueryResultCachedSticker(InlineQueryResult): @@ -20,7 +22,7 @@ class InlineQueryResultCachedSticker(InlineQueryResult): Source: https://core.telegram.org/bots/api#inlinequeryresultcachedsticker """ - type: str = Field(InlineQueryResultType.STICKER, const=True) + type: Literal[InlineQueryResultType.STICKER] = InlineQueryResultType.STICKER """Type of the result, must be *sticker*""" id: str """Unique identifier for this result, 1-64 bytes""" @@ -28,5 +30,48 @@ class InlineQueryResultCachedSticker(InlineQueryResult): """A valid file identifier of the sticker""" reply_markup: Optional[InlineKeyboardMarkup] = None """*Optional*. `Inline keyboard `_ attached to the message""" - input_message_content: Optional[InputMessageContent] = None + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None """*Optional*. Content of the message to be sent instead of the sticker""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InlineQueryResultType.STICKER] = InlineQueryResultType.STICKER, + id: str, + sticker_file_id: str, + reply_markup: Optional[InlineKeyboardMarkup] = None, + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + id=id, + sticker_file_id=sticker_file_id, + reply_markup=reply_markup, + input_message_content=input_message_content, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/inline_query_result_cached_video.py b/aiogram/types/inline_query_result_cached_video.py index acda3962..22244ed3 100644 --- a/aiogram/types/inline_query_result_cached_video.py +++ b/aiogram/types/inline_query_result_cached_video.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union from ..enums import InlineQueryResultType from .base import UNSET_PARSE_MODE @@ -10,7 +8,11 @@ from .inline_query_result import InlineQueryResult if TYPE_CHECKING: from .inline_keyboard_markup import InlineKeyboardMarkup - from .input_message_content import InputMessageContent + from .input_contact_message_content import InputContactMessageContent + from .input_invoice_message_content import InputInvoiceMessageContent + from .input_location_message_content import InputLocationMessageContent + from .input_text_message_content import InputTextMessageContent + from .input_venue_message_content import InputVenueMessageContent from .message_entity import MessageEntity @@ -21,7 +23,7 @@ class InlineQueryResultCachedVideo(InlineQueryResult): Source: https://core.telegram.org/bots/api#inlinequeryresultcachedvideo """ - type: str = Field(InlineQueryResultType.VIDEO, const=True) + type: Literal[InlineQueryResultType.VIDEO] = InlineQueryResultType.VIDEO """Type of the result, must be *video*""" id: str """Unique identifier for this result, 1-64 bytes""" @@ -39,5 +41,58 @@ class InlineQueryResultCachedVideo(InlineQueryResult): """*Optional*. List of special entities that appear in the caption, which can be specified instead of *parse_mode*""" reply_markup: Optional[InlineKeyboardMarkup] = None """*Optional*. `Inline keyboard `_ attached to the message""" - input_message_content: Optional[InputMessageContent] = None + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None """*Optional*. Content of the message to be sent instead of the video""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InlineQueryResultType.VIDEO] = InlineQueryResultType.VIDEO, + id: str, + video_file_id: str, + title: str, + description: Optional[str] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + id=id, + video_file_id=video_file_id, + title=title, + description=description, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + reply_markup=reply_markup, + input_message_content=input_message_content, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/inline_query_result_cached_voice.py b/aiogram/types/inline_query_result_cached_voice.py index 3f03b2fe..323ef356 100644 --- a/aiogram/types/inline_query_result_cached_voice.py +++ b/aiogram/types/inline_query_result_cached_voice.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union from ..enums import InlineQueryResultType from .base import UNSET_PARSE_MODE @@ -10,7 +8,11 @@ from .inline_query_result import InlineQueryResult if TYPE_CHECKING: from .inline_keyboard_markup import InlineKeyboardMarkup - from .input_message_content import InputMessageContent + from .input_contact_message_content import InputContactMessageContent + from .input_invoice_message_content import InputInvoiceMessageContent + from .input_location_message_content import InputLocationMessageContent + from .input_text_message_content import InputTextMessageContent + from .input_venue_message_content import InputVenueMessageContent from .message_entity import MessageEntity @@ -22,7 +24,7 @@ class InlineQueryResultCachedVoice(InlineQueryResult): Source: https://core.telegram.org/bots/api#inlinequeryresultcachedvoice """ - type: str = Field(InlineQueryResultType.VOICE, const=True) + type: Literal[InlineQueryResultType.VOICE] = InlineQueryResultType.VOICE """Type of the result, must be *voice*""" id: str """Unique identifier for this result, 1-64 bytes""" @@ -38,5 +40,56 @@ class InlineQueryResultCachedVoice(InlineQueryResult): """*Optional*. List of special entities that appear in the caption, which can be specified instead of *parse_mode*""" reply_markup: Optional[InlineKeyboardMarkup] = None """*Optional*. `Inline keyboard `_ attached to the message""" - input_message_content: Optional[InputMessageContent] = None + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None """*Optional*. Content of the message to be sent instead of the voice message""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InlineQueryResultType.VOICE] = InlineQueryResultType.VOICE, + id: str, + voice_file_id: str, + title: str, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + id=id, + voice_file_id=voice_file_id, + title=title, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + reply_markup=reply_markup, + input_message_content=input_message_content, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/inline_query_result_contact.py b/aiogram/types/inline_query_result_contact.py index 0f88bb9f..95561557 100644 --- a/aiogram/types/inline_query_result_contact.py +++ b/aiogram/types/inline_query_result_contact.py @@ -1,15 +1,17 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal, Optional, Union from ..enums import InlineQueryResultType from .inline_query_result import InlineQueryResult if TYPE_CHECKING: from .inline_keyboard_markup import InlineKeyboardMarkup - from .input_message_content import InputMessageContent + from .input_contact_message_content import InputContactMessageContent + from .input_invoice_message_content import InputInvoiceMessageContent + from .input_location_message_content import InputLocationMessageContent + from .input_text_message_content import InputTextMessageContent + from .input_venue_message_content import InputVenueMessageContent class InlineQueryResultContact(InlineQueryResult): @@ -20,7 +22,7 @@ class InlineQueryResultContact(InlineQueryResult): Source: https://core.telegram.org/bots/api#inlinequeryresultcontact """ - type: str = Field(InlineQueryResultType.CONTACT, const=True) + type: Literal[InlineQueryResultType.CONTACT] = InlineQueryResultType.CONTACT """Type of the result, must be *contact*""" id: str """Unique identifier for this result, 1-64 Bytes""" @@ -34,7 +36,15 @@ class InlineQueryResultContact(InlineQueryResult): """*Optional*. Additional data about the contact in the form of a `vCard `_, 0-2048 bytes""" reply_markup: Optional[InlineKeyboardMarkup] = None """*Optional*. `Inline keyboard `_ attached to the message""" - input_message_content: Optional[InputMessageContent] = None + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None """*Optional*. Content of the message to be sent instead of the contact""" thumbnail_url: Optional[str] = None """*Optional*. Url of the thumbnail for the result""" @@ -42,3 +52,50 @@ class InlineQueryResultContact(InlineQueryResult): """*Optional*. Thumbnail width""" thumbnail_height: Optional[int] = None """*Optional*. Thumbnail height""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InlineQueryResultType.CONTACT] = InlineQueryResultType.CONTACT, + id: str, + phone_number: str, + first_name: str, + last_name: Optional[str] = None, + vcard: Optional[str] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None, + thumbnail_url: Optional[str] = None, + thumbnail_width: Optional[int] = None, + thumbnail_height: Optional[int] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + id=id, + phone_number=phone_number, + first_name=first_name, + last_name=last_name, + vcard=vcard, + reply_markup=reply_markup, + input_message_content=input_message_content, + thumbnail_url=thumbnail_url, + thumbnail_width=thumbnail_width, + thumbnail_height=thumbnail_height, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/inline_query_result_document.py b/aiogram/types/inline_query_result_document.py index 7698e4c6..20e3e9cc 100644 --- a/aiogram/types/inline_query_result_document.py +++ b/aiogram/types/inline_query_result_document.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union from ..enums import InlineQueryResultType from .base import UNSET_PARSE_MODE @@ -10,7 +8,11 @@ from .inline_query_result import InlineQueryResult if TYPE_CHECKING: from .inline_keyboard_markup import InlineKeyboardMarkup - from .input_message_content import InputMessageContent + from .input_contact_message_content import InputContactMessageContent + from .input_invoice_message_content import InputInvoiceMessageContent + from .input_location_message_content import InputLocationMessageContent + from .input_text_message_content import InputTextMessageContent + from .input_venue_message_content import InputVenueMessageContent from .message_entity import MessageEntity @@ -22,7 +24,7 @@ class InlineQueryResultDocument(InlineQueryResult): Source: https://core.telegram.org/bots/api#inlinequeryresultdocument """ - type: str = Field(InlineQueryResultType.DOCUMENT, const=True) + type: Literal[InlineQueryResultType.DOCUMENT] = InlineQueryResultType.DOCUMENT """Type of the result, must be *document*""" id: str """Unique identifier for this result, 1-64 bytes""" @@ -42,7 +44,15 @@ class InlineQueryResultDocument(InlineQueryResult): """*Optional*. Short description of the result""" reply_markup: Optional[InlineKeyboardMarkup] = None """*Optional*. Inline keyboard attached to the message""" - input_message_content: Optional[InputMessageContent] = None + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None """*Optional*. Content of the message to be sent instead of the file""" thumbnail_url: Optional[str] = None """*Optional*. URL of the thumbnail (JPEG only) for the file""" @@ -50,3 +60,56 @@ class InlineQueryResultDocument(InlineQueryResult): """*Optional*. Thumbnail width""" thumbnail_height: Optional[int] = None """*Optional*. Thumbnail height""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InlineQueryResultType.DOCUMENT] = InlineQueryResultType.DOCUMENT, + id: str, + title: str, + document_url: str, + mime_type: str, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + description: Optional[str] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None, + thumbnail_url: Optional[str] = None, + thumbnail_width: Optional[int] = None, + thumbnail_height: Optional[int] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + id=id, + title=title, + document_url=document_url, + mime_type=mime_type, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + description=description, + reply_markup=reply_markup, + input_message_content=input_message_content, + thumbnail_url=thumbnail_url, + thumbnail_width=thumbnail_width, + thumbnail_height=thumbnail_height, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/inline_query_result_game.py b/aiogram/types/inline_query_result_game.py index e4d92a61..7b5876f1 100644 --- a/aiogram/types/inline_query_result_game.py +++ b/aiogram/types/inline_query_result_game.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal, Optional from ..enums import InlineQueryResultType from .inline_query_result import InlineQueryResult @@ -19,7 +17,7 @@ class InlineQueryResultGame(InlineQueryResult): Source: https://core.telegram.org/bots/api#inlinequeryresultgame """ - type: str = Field(InlineQueryResultType.GAME, const=True) + type: Literal[InlineQueryResultType.GAME] = InlineQueryResultType.GAME """Type of the result, must be *game*""" id: str """Unique identifier for this result, 1-64 bytes""" @@ -27,3 +25,28 @@ class InlineQueryResultGame(InlineQueryResult): """Short name of the game""" reply_markup: Optional[InlineKeyboardMarkup] = None """*Optional*. `Inline keyboard `_ attached to the message""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InlineQueryResultType.GAME] = InlineQueryResultType.GAME, + id: str, + game_short_name: str, + reply_markup: Optional[InlineKeyboardMarkup] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + id=id, + game_short_name=game_short_name, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/inline_query_result_gif.py b/aiogram/types/inline_query_result_gif.py index b38cfa1a..cf61a4d4 100644 --- a/aiogram/types/inline_query_result_gif.py +++ b/aiogram/types/inline_query_result_gif.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union from ..enums import InlineQueryResultType from .base import UNSET_PARSE_MODE @@ -10,7 +8,11 @@ from .inline_query_result import InlineQueryResult if TYPE_CHECKING: from .inline_keyboard_markup import InlineKeyboardMarkup - from .input_message_content import InputMessageContent + from .input_contact_message_content import InputContactMessageContent + from .input_invoice_message_content import InputInvoiceMessageContent + from .input_location_message_content import InputLocationMessageContent + from .input_text_message_content import InputTextMessageContent + from .input_venue_message_content import InputVenueMessageContent from .message_entity import MessageEntity @@ -21,7 +23,7 @@ class InlineQueryResultGif(InlineQueryResult): Source: https://core.telegram.org/bots/api#inlinequeryresultgif """ - type: str = Field(InlineQueryResultType.GIF, const=True) + type: Literal[InlineQueryResultType.GIF] = InlineQueryResultType.GIF """Type of the result, must be *gif*""" id: str """Unique identifier for this result, 1-64 bytes""" @@ -47,5 +49,66 @@ class InlineQueryResultGif(InlineQueryResult): """*Optional*. List of special entities that appear in the caption, which can be specified instead of *parse_mode*""" reply_markup: Optional[InlineKeyboardMarkup] = None """*Optional*. `Inline keyboard `_ attached to the message""" - input_message_content: Optional[InputMessageContent] = None + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None """*Optional*. Content of the message to be sent instead of the GIF animation""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InlineQueryResultType.GIF] = InlineQueryResultType.GIF, + id: str, + gif_url: str, + thumbnail_url: str, + gif_width: Optional[int] = None, + gif_height: Optional[int] = None, + gif_duration: Optional[int] = None, + thumbnail_mime_type: Optional[str] = None, + title: Optional[str] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + id=id, + gif_url=gif_url, + thumbnail_url=thumbnail_url, + gif_width=gif_width, + gif_height=gif_height, + gif_duration=gif_duration, + thumbnail_mime_type=thumbnail_mime_type, + title=title, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + reply_markup=reply_markup, + input_message_content=input_message_content, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/inline_query_result_location.py b/aiogram/types/inline_query_result_location.py index aa1f6d88..45ad8042 100644 --- a/aiogram/types/inline_query_result_location.py +++ b/aiogram/types/inline_query_result_location.py @@ -1,15 +1,17 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal, Optional, Union from ..enums import InlineQueryResultType from .inline_query_result import InlineQueryResult if TYPE_CHECKING: from .inline_keyboard_markup import InlineKeyboardMarkup - from .input_message_content import InputMessageContent + from .input_contact_message_content import InputContactMessageContent + from .input_invoice_message_content import InputInvoiceMessageContent + from .input_location_message_content import InputLocationMessageContent + from .input_text_message_content import InputTextMessageContent + from .input_venue_message_content import InputVenueMessageContent class InlineQueryResultLocation(InlineQueryResult): @@ -20,7 +22,7 @@ class InlineQueryResultLocation(InlineQueryResult): Source: https://core.telegram.org/bots/api#inlinequeryresultlocation """ - type: str = Field(InlineQueryResultType.LOCATION, const=True) + type: Literal[InlineQueryResultType.LOCATION] = InlineQueryResultType.LOCATION """Type of the result, must be *location*""" id: str """Unique identifier for this result, 1-64 Bytes""" @@ -40,7 +42,15 @@ class InlineQueryResultLocation(InlineQueryResult): """*Optional*. For live locations, a maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified.""" reply_markup: Optional[InlineKeyboardMarkup] = None """*Optional*. `Inline keyboard `_ attached to the message""" - input_message_content: Optional[InputMessageContent] = None + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None """*Optional*. Content of the message to be sent instead of the location""" thumbnail_url: Optional[str] = None """*Optional*. Url of the thumbnail for the result""" @@ -48,3 +58,56 @@ class InlineQueryResultLocation(InlineQueryResult): """*Optional*. Thumbnail width""" thumbnail_height: Optional[int] = None """*Optional*. Thumbnail height""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InlineQueryResultType.LOCATION] = InlineQueryResultType.LOCATION, + id: str, + latitude: float, + longitude: float, + title: str, + horizontal_accuracy: Optional[float] = None, + live_period: Optional[int] = None, + heading: Optional[int] = None, + proximity_alert_radius: Optional[int] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None, + thumbnail_url: Optional[str] = None, + thumbnail_width: Optional[int] = None, + thumbnail_height: Optional[int] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + id=id, + latitude=latitude, + longitude=longitude, + title=title, + horizontal_accuracy=horizontal_accuracy, + live_period=live_period, + heading=heading, + proximity_alert_radius=proximity_alert_radius, + reply_markup=reply_markup, + input_message_content=input_message_content, + thumbnail_url=thumbnail_url, + thumbnail_width=thumbnail_width, + thumbnail_height=thumbnail_height, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/inline_query_result_mpeg4_gif.py b/aiogram/types/inline_query_result_mpeg4_gif.py index 06c73620..8be8e44e 100644 --- a/aiogram/types/inline_query_result_mpeg4_gif.py +++ b/aiogram/types/inline_query_result_mpeg4_gif.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union from ..enums import InlineQueryResultType from .base import UNSET_PARSE_MODE @@ -10,7 +8,11 @@ from .inline_query_result import InlineQueryResult if TYPE_CHECKING: from .inline_keyboard_markup import InlineKeyboardMarkup - from .input_message_content import InputMessageContent + from .input_contact_message_content import InputContactMessageContent + from .input_invoice_message_content import InputInvoiceMessageContent + from .input_location_message_content import InputLocationMessageContent + from .input_text_message_content import InputTextMessageContent + from .input_venue_message_content import InputVenueMessageContent from .message_entity import MessageEntity @@ -21,7 +23,7 @@ class InlineQueryResultMpeg4Gif(InlineQueryResult): Source: https://core.telegram.org/bots/api#inlinequeryresultmpeg4gif """ - type: str = Field(InlineQueryResultType.MPEG4_GIF, const=True) + type: Literal[InlineQueryResultType.MPEG4_GIF] = InlineQueryResultType.MPEG4_GIF """Type of the result, must be *mpeg4_gif*""" id: str """Unique identifier for this result, 1-64 bytes""" @@ -47,5 +49,66 @@ class InlineQueryResultMpeg4Gif(InlineQueryResult): """*Optional*. List of special entities that appear in the caption, which can be specified instead of *parse_mode*""" reply_markup: Optional[InlineKeyboardMarkup] = None """*Optional*. `Inline keyboard `_ attached to the message""" - input_message_content: Optional[InputMessageContent] = None + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None """*Optional*. Content of the message to be sent instead of the video animation""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InlineQueryResultType.MPEG4_GIF] = InlineQueryResultType.MPEG4_GIF, + id: str, + mpeg4_url: str, + thumbnail_url: str, + mpeg4_width: Optional[int] = None, + mpeg4_height: Optional[int] = None, + mpeg4_duration: Optional[int] = None, + thumbnail_mime_type: Optional[str] = None, + title: Optional[str] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + id=id, + mpeg4_url=mpeg4_url, + thumbnail_url=thumbnail_url, + mpeg4_width=mpeg4_width, + mpeg4_height=mpeg4_height, + mpeg4_duration=mpeg4_duration, + thumbnail_mime_type=thumbnail_mime_type, + title=title, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + reply_markup=reply_markup, + input_message_content=input_message_content, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/inline_query_result_photo.py b/aiogram/types/inline_query_result_photo.py index 6ed85276..fe577877 100644 --- a/aiogram/types/inline_query_result_photo.py +++ b/aiogram/types/inline_query_result_photo.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union from ..enums import InlineQueryResultType from .base import UNSET_PARSE_MODE @@ -10,7 +8,11 @@ from .inline_query_result import InlineQueryResult if TYPE_CHECKING: from .inline_keyboard_markup import InlineKeyboardMarkup - from .input_message_content import InputMessageContent + from .input_contact_message_content import InputContactMessageContent + from .input_invoice_message_content import InputInvoiceMessageContent + from .input_location_message_content import InputLocationMessageContent + from .input_text_message_content import InputTextMessageContent + from .input_venue_message_content import InputVenueMessageContent from .message_entity import MessageEntity @@ -21,7 +23,7 @@ class InlineQueryResultPhoto(InlineQueryResult): Source: https://core.telegram.org/bots/api#inlinequeryresultphoto """ - type: str = Field(InlineQueryResultType.PHOTO, const=True) + type: Literal[InlineQueryResultType.PHOTO] = InlineQueryResultType.PHOTO """Type of the result, must be *photo*""" id: str """Unique identifier for this result, 1-64 bytes""" @@ -45,5 +47,64 @@ class InlineQueryResultPhoto(InlineQueryResult): """*Optional*. List of special entities that appear in the caption, which can be specified instead of *parse_mode*""" reply_markup: Optional[InlineKeyboardMarkup] = None """*Optional*. `Inline keyboard `_ attached to the message""" - input_message_content: Optional[InputMessageContent] = None + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None """*Optional*. Content of the message to be sent instead of the photo""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InlineQueryResultType.PHOTO] = InlineQueryResultType.PHOTO, + id: str, + photo_url: str, + thumbnail_url: str, + photo_width: Optional[int] = None, + photo_height: Optional[int] = None, + title: Optional[str] = None, + description: Optional[str] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + id=id, + photo_url=photo_url, + thumbnail_url=thumbnail_url, + photo_width=photo_width, + photo_height=photo_height, + title=title, + description=description, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + reply_markup=reply_markup, + input_message_content=input_message_content, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/inline_query_result_venue.py b/aiogram/types/inline_query_result_venue.py index 0c92a008..9e11a25b 100644 --- a/aiogram/types/inline_query_result_venue.py +++ b/aiogram/types/inline_query_result_venue.py @@ -1,15 +1,17 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal, Optional, Union from ..enums import InlineQueryResultType from .inline_query_result import InlineQueryResult if TYPE_CHECKING: from .inline_keyboard_markup import InlineKeyboardMarkup - from .input_message_content import InputMessageContent + from .input_contact_message_content import InputContactMessageContent + from .input_invoice_message_content import InputInvoiceMessageContent + from .input_location_message_content import InputLocationMessageContent + from .input_text_message_content import InputTextMessageContent + from .input_venue_message_content import InputVenueMessageContent class InlineQueryResultVenue(InlineQueryResult): @@ -20,7 +22,7 @@ class InlineQueryResultVenue(InlineQueryResult): Source: https://core.telegram.org/bots/api#inlinequeryresultvenue """ - type: str = Field(InlineQueryResultType.VENUE, const=True) + type: Literal[InlineQueryResultType.VENUE] = InlineQueryResultType.VENUE """Type of the result, must be *venue*""" id: str """Unique identifier for this result, 1-64 Bytes""" @@ -42,7 +44,15 @@ class InlineQueryResultVenue(InlineQueryResult): """*Optional*. Google Places type of the venue. (See `supported types `_.)""" reply_markup: Optional[InlineKeyboardMarkup] = None """*Optional*. `Inline keyboard `_ attached to the message""" - input_message_content: Optional[InputMessageContent] = None + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None """*Optional*. Content of the message to be sent instead of the venue""" thumbnail_url: Optional[str] = None """*Optional*. Url of the thumbnail for the result""" @@ -50,3 +60,58 @@ class InlineQueryResultVenue(InlineQueryResult): """*Optional*. Thumbnail width""" thumbnail_height: Optional[int] = None """*Optional*. Thumbnail height""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InlineQueryResultType.VENUE] = InlineQueryResultType.VENUE, + id: str, + latitude: float, + longitude: float, + title: str, + address: str, + foursquare_id: Optional[str] = None, + foursquare_type: Optional[str] = None, + google_place_id: Optional[str] = None, + google_place_type: Optional[str] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None, + thumbnail_url: Optional[str] = None, + thumbnail_width: Optional[int] = None, + thumbnail_height: Optional[int] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + id=id, + latitude=latitude, + longitude=longitude, + title=title, + address=address, + foursquare_id=foursquare_id, + foursquare_type=foursquare_type, + google_place_id=google_place_id, + google_place_type=google_place_type, + reply_markup=reply_markup, + input_message_content=input_message_content, + thumbnail_url=thumbnail_url, + thumbnail_width=thumbnail_width, + thumbnail_height=thumbnail_height, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/inline_query_result_video.py b/aiogram/types/inline_query_result_video.py index ba14d066..b65ec3b9 100644 --- a/aiogram/types/inline_query_result_video.py +++ b/aiogram/types/inline_query_result_video.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union from ..enums import InlineQueryResultType from .base import UNSET_PARSE_MODE @@ -10,7 +8,11 @@ from .inline_query_result import InlineQueryResult if TYPE_CHECKING: from .inline_keyboard_markup import InlineKeyboardMarkup - from .input_message_content import InputMessageContent + from .input_contact_message_content import InputContactMessageContent + from .input_invoice_message_content import InputInvoiceMessageContent + from .input_location_message_content import InputLocationMessageContent + from .input_text_message_content import InputTextMessageContent + from .input_venue_message_content import InputVenueMessageContent from .message_entity import MessageEntity @@ -23,7 +25,7 @@ class InlineQueryResultVideo(InlineQueryResult): Source: https://core.telegram.org/bots/api#inlinequeryresultvideo """ - type: str = Field(InlineQueryResultType.VIDEO, const=True) + type: Literal[InlineQueryResultType.VIDEO] = InlineQueryResultType.VIDEO """Type of the result, must be *video*""" id: str """Unique identifier for this result, 1-64 bytes""" @@ -51,5 +53,68 @@ class InlineQueryResultVideo(InlineQueryResult): """*Optional*. Short description of the result""" reply_markup: Optional[InlineKeyboardMarkup] = None """*Optional*. `Inline keyboard `_ attached to the message""" - input_message_content: Optional[InputMessageContent] = None + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None """*Optional*. Content of the message to be sent instead of the video. This field is **required** if InlineQueryResultVideo is used to send an HTML-page as a result (e.g., a YouTube video).""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InlineQueryResultType.VIDEO] = InlineQueryResultType.VIDEO, + id: str, + video_url: str, + mime_type: str, + thumbnail_url: str, + title: str, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + video_width: Optional[int] = None, + video_height: Optional[int] = None, + video_duration: Optional[int] = None, + description: Optional[str] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + id=id, + video_url=video_url, + mime_type=mime_type, + thumbnail_url=thumbnail_url, + title=title, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + video_width=video_width, + video_height=video_height, + video_duration=video_duration, + description=description, + reply_markup=reply_markup, + input_message_content=input_message_content, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/inline_query_result_voice.py b/aiogram/types/inline_query_result_voice.py index 7de1f6cf..edd3157e 100644 --- a/aiogram/types/inline_query_result_voice.py +++ b/aiogram/types/inline_query_result_voice.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union from ..enums import InlineQueryResultType from .base import UNSET_PARSE_MODE @@ -10,7 +8,11 @@ from .inline_query_result import InlineQueryResult if TYPE_CHECKING: from .inline_keyboard_markup import InlineKeyboardMarkup - from .input_message_content import InputMessageContent + from .input_contact_message_content import InputContactMessageContent + from .input_invoice_message_content import InputInvoiceMessageContent + from .input_location_message_content import InputLocationMessageContent + from .input_text_message_content import InputTextMessageContent + from .input_venue_message_content import InputVenueMessageContent from .message_entity import MessageEntity @@ -22,7 +24,7 @@ class InlineQueryResultVoice(InlineQueryResult): Source: https://core.telegram.org/bots/api#inlinequeryresultvoice """ - type: str = Field(InlineQueryResultType.VOICE, const=True) + type: Literal[InlineQueryResultType.VOICE] = InlineQueryResultType.VOICE """Type of the result, must be *voice*""" id: str """Unique identifier for this result, 1-64 bytes""" @@ -40,5 +42,58 @@ class InlineQueryResultVoice(InlineQueryResult): """*Optional*. Recording duration in seconds""" reply_markup: Optional[InlineKeyboardMarkup] = None """*Optional*. `Inline keyboard `_ attached to the message""" - input_message_content: Optional[InputMessageContent] = None + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None """*Optional*. Content of the message to be sent instead of the voice recording""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InlineQueryResultType.VOICE] = InlineQueryResultType.VOICE, + id: str, + voice_url: str, + title: str, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + voice_duration: Optional[int] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + input_message_content: Optional[ + Union[ + InputTextMessageContent, + InputLocationMessageContent, + InputVenueMessageContent, + InputContactMessageContent, + InputInvoiceMessageContent, + ] + ] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + id=id, + voice_url=voice_url, + title=title, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + voice_duration=voice_duration, + reply_markup=reply_markup, + input_message_content=input_message_content, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/inline_query_results_button.py b/aiogram/types/inline_query_results_button.py index 4a8f59df..6943fb89 100644 --- a/aiogram/types/inline_query_results_button.py +++ b/aiogram/types/inline_query_results_button.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramObject @@ -18,6 +18,26 @@ class InlineQueryResultsButton(TelegramObject): text: str """Label text on the button""" web_app: Optional[WebAppInfo] = None - """*Optional*. Description of the `Web App `_ that will be launched when the user presses the button. The Web App will be able to switch back to the inline mode using the method *web_app_switch_inline_query* inside the Web App.""" + """*Optional*. Description of the `Web App `_ that will be launched when the user presses the button. The Web App will be able to switch back to the inline mode using the method `switchInlineQuery `_ inside the Web App.""" start_parameter: Optional[str] = None """*Optional*. `Deep-linking `_ parameter for the /start message sent to the bot when a user presses the button. 1-64 characters, only :code:`A-Z`, :code:`a-z`, :code:`0-9`, :code:`_` and :code:`-` are allowed.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + text: str, + web_app: Optional[WebAppInfo] = None, + start_parameter: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + text=text, web_app=web_app, start_parameter=start_parameter, **__pydantic_kwargs + ) diff --git a/aiogram/types/input_contact_message_content.py b/aiogram/types/input_contact_message_content.py index 2e5a7823..8bcb5819 100644 --- a/aiogram/types/input_contact_message_content.py +++ b/aiogram/types/input_contact_message_content.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import Optional +from typing import TYPE_CHECKING, Any, Optional from .input_message_content import InputMessageContent @@ -20,3 +20,28 @@ class InputContactMessageContent(InputMessageContent): """*Optional*. Contact's last name""" vcard: Optional[str] = None """*Optional*. Additional data about the contact in the form of a `vCard `_, 0-2048 bytes""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + phone_number: str, + first_name: str, + last_name: Optional[str] = None, + vcard: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + phone_number=phone_number, + first_name=first_name, + last_name=last_name, + vcard=vcard, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/input_file.py b/aiogram/types/input_file.py index c4090505..5b730598 100644 --- a/aiogram/types/input_file.py +++ b/aiogram/types/input_file.py @@ -4,10 +4,13 @@ import io import os from abc import ABC, abstractmethod from pathlib import Path -from typing import AsyncGenerator, AsyncIterator, Iterator, Optional, Union +from typing import TYPE_CHECKING, Any, AsyncGenerator, Dict, Optional, Union import aiofiles +if TYPE_CHECKING: + from aiogram.client.bot import Bot + DEFAULT_CHUNK_SIZE = 64 * 1024 # 64 kb @@ -29,18 +32,10 @@ class InputFile(ABC): self.filename = filename self.chunk_size = chunk_size - @classmethod - def __get_validators__(cls) -> Iterator[None]: - yield None - @abstractmethod - async def read(self, chunk_size: int) -> AsyncGenerator[bytes, None]: # pragma: no cover + async def read(self, bot: "Bot") -> AsyncGenerator[bytes, None]: # pragma: no cover yield b"" - async def __aiter__(self) -> AsyncIterator[bytes]: - async for chunk in self.read(self.chunk_size): - yield chunk - class BufferedInputFile(InputFile): def __init__(self, file: bytes, filename: str, chunk_size: int = DEFAULT_CHUNK_SIZE): @@ -77,9 +72,9 @@ class BufferedInputFile(InputFile): data = f.read() return cls(data, filename=filename, chunk_size=chunk_size) - async def read(self, chunk_size: int) -> AsyncGenerator[bytes, None]: + async def read(self, bot: "Bot") -> AsyncGenerator[bytes, None]: buffer = io.BytesIO(self.data) - while chunk := buffer.read(chunk_size): + while chunk := buffer.read(self.chunk_size): yield chunk @@ -104,9 +99,9 @@ class FSInputFile(InputFile): self.path = path - async def read(self, chunk_size: int) -> AsyncGenerator[bytes, None]: + async def read(self, bot: "Bot") -> AsyncGenerator[bytes, None]: async with aiofiles.open(self.path, "rb") as f: - while chunk := await f.read(chunk_size): + while chunk := await f.read(self.chunk_size): yield chunk @@ -114,28 +109,37 @@ class URLInputFile(InputFile): def __init__( self, url: str, + headers: Optional[Dict[str, Any]] = None, filename: Optional[str] = None, chunk_size: int = DEFAULT_CHUNK_SIZE, timeout: int = 30, + bot: Optional["Bot"] = None, ): """ Represents object for streaming files from internet :param url: URL in internet + :param headers: HTTP Headers :param filename: Filename to be propagated to telegram. :param chunk_size: Uploading chunk size + :param timeout: Timeout for downloading + :param bot: Bot instance to use HTTP session from. + If not specified, will be used current bot """ super().__init__(filename=filename, chunk_size=chunk_size) + if headers is None: + headers = {} self.url = url + self.headers = headers self.timeout = timeout + self.bot = bot - async def read(self, chunk_size: int) -> AsyncGenerator[bytes, None]: - from aiogram.client.bot import Bot - - bot = Bot.get_current(no_error=False) + async def read(self, bot: "Bot") -> AsyncGenerator[bytes, None]: + bot = self.bot or bot stream = bot.session.stream_content( url=self.url, + headers=self.headers, timeout=self.timeout, chunk_size=self.chunk_size, raise_for_status=True, diff --git a/aiogram/types/input_invoice_message_content.py b/aiogram/types/input_invoice_message_content.py index 4af5596d..af298dec 100644 --- a/aiogram/types/input_invoice_message_content.py +++ b/aiogram/types/input_invoice_message_content.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Any, List, Optional from .input_message_content import InputMessageContent @@ -55,3 +55,60 @@ class InputInvoiceMessageContent(InputMessageContent): """*Optional*. Pass :code:`True` if the user's email address should be sent to provider""" is_flexible: Optional[bool] = None """*Optional*. Pass :code:`True` if the final price depends on the shipping method""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + title: str, + description: str, + payload: str, + provider_token: str, + currency: str, + prices: List[LabeledPrice], + max_tip_amount: Optional[int] = None, + suggested_tip_amounts: Optional[List[int]] = None, + provider_data: Optional[str] = None, + photo_url: Optional[str] = None, + photo_size: Optional[int] = None, + photo_width: Optional[int] = None, + photo_height: Optional[int] = None, + need_name: Optional[bool] = None, + need_phone_number: Optional[bool] = None, + need_email: Optional[bool] = None, + need_shipping_address: Optional[bool] = None, + send_phone_number_to_provider: Optional[bool] = None, + send_email_to_provider: Optional[bool] = None, + is_flexible: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + title=title, + description=description, + payload=payload, + provider_token=provider_token, + currency=currency, + prices=prices, + max_tip_amount=max_tip_amount, + suggested_tip_amounts=suggested_tip_amounts, + provider_data=provider_data, + photo_url=photo_url, + photo_size=photo_size, + photo_width=photo_width, + photo_height=photo_height, + need_name=need_name, + need_phone_number=need_phone_number, + need_email=need_email, + need_shipping_address=need_shipping_address, + send_phone_number_to_provider=send_phone_number_to_provider, + send_email_to_provider=send_email_to_provider, + is_flexible=is_flexible, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/input_location_message_content.py b/aiogram/types/input_location_message_content.py index 700532c2..ee4678a6 100644 --- a/aiogram/types/input_location_message_content.py +++ b/aiogram/types/input_location_message_content.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import Optional +from typing import TYPE_CHECKING, Any, Optional from .input_message_content import InputMessageContent @@ -24,3 +24,32 @@ class InputLocationMessageContent(InputMessageContent): """*Optional*. For live locations, a direction in which the user is moving, in degrees. Must be between 1 and 360 if specified.""" proximity_alert_radius: Optional[int] = None """*Optional*. For live locations, a maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + latitude: float, + longitude: float, + horizontal_accuracy: Optional[float] = None, + live_period: Optional[int] = None, + heading: Optional[int] = None, + proximity_alert_radius: Optional[int] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + latitude=latitude, + longitude=longitude, + horizontal_accuracy=horizontal_accuracy, + live_period=live_period, + heading=heading, + proximity_alert_radius=proximity_alert_radius, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/input_media_animation.py b/aiogram/types/input_media_animation.py index eabc4b5e..72220db8 100644 --- a/aiogram/types/input_media_animation.py +++ b/aiogram/types/input_media_animation.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional, Union - -from pydantic import Field +from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union from ..enums import InputMediaType from .base import UNSET_PARSE_MODE @@ -20,7 +18,7 @@ class InputMediaAnimation(InputMedia): Source: https://core.telegram.org/bots/api#inputmediaanimation """ - type: str = Field(InputMediaType.ANIMATION, const=True) + type: Literal[InputMediaType.ANIMATION] = InputMediaType.ANIMATION """Type of the result, must be *animation*""" media: Union[str, InputFile] """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 » `""" @@ -40,3 +38,40 @@ class InputMediaAnimation(InputMedia): """*Optional*. Animation duration in seconds""" has_spoiler: Optional[bool] = None """*Optional*. Pass :code:`True` if the animation needs to be covered with a spoiler animation""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InputMediaType.ANIMATION] = InputMediaType.ANIMATION, + media: Union[str, InputFile], + thumbnail: Optional[Union[InputFile, str]] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + width: Optional[int] = None, + height: Optional[int] = None, + duration: Optional[int] = None, + has_spoiler: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + media=media, + thumbnail=thumbnail, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + width=width, + height=height, + duration=duration, + has_spoiler=has_spoiler, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/input_media_audio.py b/aiogram/types/input_media_audio.py index 8de62a6f..c05513a0 100644 --- a/aiogram/types/input_media_audio.py +++ b/aiogram/types/input_media_audio.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional, Union - -from pydantic import Field +from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union from ..enums import InputMediaType from .base import UNSET_PARSE_MODE @@ -20,7 +18,7 @@ class InputMediaAudio(InputMedia): Source: https://core.telegram.org/bots/api#inputmediaaudio """ - type: str = Field(InputMediaType.AUDIO, const=True) + type: Literal[InputMediaType.AUDIO] = InputMediaType.AUDIO """Type of the result, must be *audio*""" media: Union[str, InputFile] """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 » `""" @@ -38,3 +36,38 @@ class InputMediaAudio(InputMedia): """*Optional*. Performer of the audio""" title: Optional[str] = None """*Optional*. Title of the audio""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InputMediaType.AUDIO] = InputMediaType.AUDIO, + media: Union[str, InputFile], + thumbnail: Optional[Union[InputFile, str]] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + duration: Optional[int] = None, + performer: Optional[str] = None, + title: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + media=media, + thumbnail=thumbnail, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + duration=duration, + performer=performer, + title=title, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/input_media_document.py b/aiogram/types/input_media_document.py index 9ef4d52f..121896b7 100644 --- a/aiogram/types/input_media_document.py +++ b/aiogram/types/input_media_document.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional, Union - -from pydantic import Field +from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union from ..enums import InputMediaType from .base import UNSET_PARSE_MODE @@ -20,7 +18,7 @@ class InputMediaDocument(InputMedia): Source: https://core.telegram.org/bots/api#inputmediadocument """ - type: str = Field(InputMediaType.DOCUMENT, const=True) + type: Literal[InputMediaType.DOCUMENT] = InputMediaType.DOCUMENT """Type of the result, must be *document*""" media: Union[str, InputFile] """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 » `""" @@ -34,3 +32,34 @@ class InputMediaDocument(InputMedia): """*Optional*. List of special entities that appear in the caption, which can be specified instead of *parse_mode*""" disable_content_type_detection: Optional[bool] = None """*Optional*. Disables automatic server-side content type detection for files uploaded using multipart/form-data. Always :code:`True`, if the document is sent as part of an album.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InputMediaType.DOCUMENT] = InputMediaType.DOCUMENT, + media: Union[str, InputFile], + thumbnail: Optional[Union[InputFile, str]] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + disable_content_type_detection: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + media=media, + thumbnail=thumbnail, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + disable_content_type_detection=disable_content_type_detection, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/input_media_photo.py b/aiogram/types/input_media_photo.py index 0f9500e8..d18330ac 100644 --- a/aiogram/types/input_media_photo.py +++ b/aiogram/types/input_media_photo.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional, Union - -from pydantic import Field +from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union from ..enums import InputMediaType from .base import UNSET_PARSE_MODE @@ -20,7 +18,7 @@ class InputMediaPhoto(InputMedia): Source: https://core.telegram.org/bots/api#inputmediaphoto """ - type: str = Field(InputMediaType.PHOTO, const=True) + type: Literal[InputMediaType.PHOTO] = InputMediaType.PHOTO """Type of the result, must be *photo*""" media: Union[str, InputFile] """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 » `""" @@ -32,3 +30,32 @@ class InputMediaPhoto(InputMedia): """*Optional*. List of special entities that appear in the caption, which can be specified instead of *parse_mode*""" has_spoiler: Optional[bool] = None """*Optional*. Pass :code:`True` if the photo needs to be covered with a spoiler animation""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InputMediaType.PHOTO] = InputMediaType.PHOTO, + media: Union[str, InputFile], + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + has_spoiler: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + media=media, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + has_spoiler=has_spoiler, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/input_media_video.py b/aiogram/types/input_media_video.py index 89d4df91..1c153d94 100644 --- a/aiogram/types/input_media_video.py +++ b/aiogram/types/input_media_video.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional, Union - -from pydantic import Field +from typing import TYPE_CHECKING, Any, List, Literal, Optional, Union from ..enums import InputMediaType from .base import UNSET_PARSE_MODE @@ -20,7 +18,7 @@ class InputMediaVideo(InputMedia): Source: https://core.telegram.org/bots/api#inputmediavideo """ - type: str = Field(InputMediaType.VIDEO, const=True) + type: Literal[InputMediaType.VIDEO] = InputMediaType.VIDEO """Type of the result, must be *video*""" media: Union[str, InputFile] """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 » `""" @@ -42,3 +40,42 @@ class InputMediaVideo(InputMedia): """*Optional*. Pass :code:`True` if the uploaded video is suitable for streaming""" has_spoiler: Optional[bool] = None """*Optional*. Pass :code:`True` if the video needs to be covered with a spoiler animation""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[InputMediaType.VIDEO] = InputMediaType.VIDEO, + media: Union[str, InputFile], + thumbnail: Optional[Union[InputFile, str]] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + width: Optional[int] = None, + height: Optional[int] = None, + duration: Optional[int] = None, + supports_streaming: Optional[bool] = None, + has_spoiler: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + media=media, + thumbnail=thumbnail, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + width=width, + height=height, + duration=duration, + supports_streaming=supports_streaming, + has_spoiler=has_spoiler, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/input_sticker.py b/aiogram/types/input_sticker.py index 15765962..eebde128 100644 --- a/aiogram/types/input_sticker.py +++ b/aiogram/types/input_sticker.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional, Union +from typing import TYPE_CHECKING, Any, List, Optional, Union from .base import TelegramObject @@ -24,3 +24,28 @@ class InputSticker(TelegramObject): """*Optional*. Position where the mask should be placed on faces. For 'mask' stickers only.""" keywords: Optional[List[str]] = None """*Optional*. List of 0-20 search keywords for the sticker with total length of up to 64 characters. For 'regular' and 'custom_emoji' stickers only.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + sticker: Union[InputFile, str], + emoji_list: List[str], + mask_position: Optional[MaskPosition] = None, + keywords: Optional[List[str]] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + sticker=sticker, + emoji_list=emoji_list, + mask_position=mask_position, + keywords=keywords, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/input_text_message_content.py b/aiogram/types/input_text_message_content.py index 697696ce..57d5acba 100644 --- a/aiogram/types/input_text_message_content.py +++ b/aiogram/types/input_text_message_content.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Any, List, Optional from .base import UNSET_DISABLE_WEB_PAGE_PREVIEW, UNSET_PARSE_MODE from .input_message_content import InputMessageContent @@ -24,3 +24,28 @@ class InputTextMessageContent(InputMessageContent): """*Optional*. List of special entities that appear in message text, which can be specified instead of *parse_mode*""" disable_web_page_preview: Optional[bool] = UNSET_DISABLE_WEB_PAGE_PREVIEW """*Optional*. Disables link previews for links in the sent message""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + message_text: str, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + entities: Optional[List[MessageEntity]] = None, + disable_web_page_preview: Optional[bool] = UNSET_DISABLE_WEB_PAGE_PREVIEW, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + message_text=message_text, + parse_mode=parse_mode, + entities=entities, + disable_web_page_preview=disable_web_page_preview, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/input_venue_message_content.py b/aiogram/types/input_venue_message_content.py index f6ccd76f..48dd5c4e 100644 --- a/aiogram/types/input_venue_message_content.py +++ b/aiogram/types/input_venue_message_content.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import Optional +from typing import TYPE_CHECKING, Any, Optional from .input_message_content import InputMessageContent @@ -28,3 +28,36 @@ class InputVenueMessageContent(InputMessageContent): """*Optional*. Google Places identifier of the venue""" google_place_type: Optional[str] = None """*Optional*. Google Places type of the venue. (See `supported types `_.)""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + latitude: float, + longitude: float, + title: str, + address: str, + foursquare_id: Optional[str] = None, + foursquare_type: Optional[str] = None, + google_place_id: Optional[str] = None, + google_place_type: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + latitude=latitude, + longitude=longitude, + title=title, + address=address, + foursquare_id=foursquare_id, + foursquare_type=foursquare_type, + google_place_id=google_place_id, + google_place_type=google_place_type, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/invoice.py b/aiogram/types/invoice.py index 1e734895..f451ead0 100644 --- a/aiogram/types/invoice.py +++ b/aiogram/types/invoice.py @@ -1,5 +1,7 @@ from __future__ import annotations +from typing import TYPE_CHECKING, Any + from .base import TelegramObject @@ -20,3 +22,30 @@ class Invoice(TelegramObject): """Three-letter ISO 4217 `currency `_ code""" total_amount: int """Total price in the *smallest units* of the currency (integer, **not** float/double). For example, for a price of :code:`US$ 1.45` pass :code:`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).""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + title: str, + description: str, + start_parameter: str, + currency: str, + total_amount: int, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + title=title, + description=description, + start_parameter=start_parameter, + currency=currency, + total_amount=total_amount, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/keyboard_button.py b/aiogram/types/keyboard_button.py index 08d4ce37..2c9e1834 100644 --- a/aiogram/types/keyboard_button.py +++ b/aiogram/types/keyboard_button.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from .base import MutableTelegramObject @@ -39,3 +39,34 @@ class KeyboardButton(MutableTelegramObject): """*Optional*. If specified, the user will be asked to create a poll and send it to the bot when the button is pressed. Available in private chats only.""" web_app: Optional[WebAppInfo] = None """*Optional*. If specified, the described `Web App `_ will be launched when the button is pressed. The Web App will be able to send a 'web_app_data' service message. Available in private chats only.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + text: str, + request_user: Optional[KeyboardButtonRequestUser] = None, + request_chat: Optional[KeyboardButtonRequestChat] = None, + request_contact: Optional[bool] = None, + request_location: Optional[bool] = None, + request_poll: Optional[KeyboardButtonPollType] = None, + web_app: Optional[WebAppInfo] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + text=text, + request_user=request_user, + request_chat=request_chat, + request_contact=request_contact, + request_location=request_location, + request_poll=request_poll, + web_app=web_app, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/keyboard_button_poll_type.py b/aiogram/types/keyboard_button_poll_type.py index 2747adfb..07eadb7b 100644 --- a/aiogram/types/keyboard_button_poll_type.py +++ b/aiogram/types/keyboard_button_poll_type.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import Optional +from typing import TYPE_CHECKING, Any, Optional from .base import MutableTelegramObject @@ -14,3 +14,16 @@ class KeyboardButtonPollType(MutableTelegramObject): type: Optional[str] = None """*Optional*. If *quiz* is passed, the user will be allowed to create only polls in the quiz mode. If *regular* is passed, only regular polls will be allowed. Otherwise, the user will be allowed to create a poll of any type.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, type: Optional[str] = None, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(type=type, **__pydantic_kwargs) diff --git a/aiogram/types/keyboard_button_request_chat.py b/aiogram/types/keyboard_button_request_chat.py index 4b402c1b..24caf635 100644 --- a/aiogram/types/keyboard_button_request_chat.py +++ b/aiogram/types/keyboard_button_request_chat.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from aiogram.types import TelegramObject @@ -31,3 +31,36 @@ class KeyboardButtonRequestChat(TelegramObject): """*Optional*. A JSON-serialized object listing the required administrator rights of the bot in the chat. The rights must be a subset of *user_administrator_rights*. If not specified, no additional restrictions are applied.""" bot_is_member: Optional[bool] = None """*Optional*. Pass :code:`True` to request a chat with the bot as a member. Otherwise, no additional restrictions are applied.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + request_id: int, + chat_is_channel: bool, + chat_is_forum: Optional[bool] = None, + chat_has_username: Optional[bool] = None, + chat_is_created: Optional[bool] = None, + user_administrator_rights: Optional[ChatAdministratorRights] = None, + bot_administrator_rights: Optional[ChatAdministratorRights] = None, + bot_is_member: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + request_id=request_id, + chat_is_channel=chat_is_channel, + chat_is_forum=chat_is_forum, + chat_has_username=chat_has_username, + chat_is_created=chat_is_created, + user_administrator_rights=user_administrator_rights, + bot_administrator_rights=bot_administrator_rights, + bot_is_member=bot_is_member, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/keyboard_button_request_user.py b/aiogram/types/keyboard_button_request_user.py index b6b33039..443f3403 100644 --- a/aiogram/types/keyboard_button_request_user.py +++ b/aiogram/types/keyboard_button_request_user.py @@ -1,4 +1,4 @@ -from typing import Optional +from typing import TYPE_CHECKING, Any, Optional from aiogram.types import TelegramObject @@ -16,3 +16,26 @@ class KeyboardButtonRequestUser(TelegramObject): """*Optional*. Pass :code:`True` to request a bot, pass :code:`False` to request a regular user. If not specified, no additional restrictions are applied.""" user_is_premium: Optional[bool] = None """*Optional*. Pass :code:`True` to request a premium user, pass :code:`False` to request a non-premium user. If not specified, no additional restrictions are applied.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + request_id: int, + user_is_bot: Optional[bool] = None, + user_is_premium: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + request_id=request_id, + user_is_bot=user_is_bot, + user_is_premium=user_is_premium, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/labeled_price.py b/aiogram/types/labeled_price.py index 3dcffb89..42d97af3 100644 --- a/aiogram/types/labeled_price.py +++ b/aiogram/types/labeled_price.py @@ -1,5 +1,7 @@ from __future__ import annotations +from typing import TYPE_CHECKING, Any + from .base import MutableTelegramObject @@ -14,3 +16,16 @@ class LabeledPrice(MutableTelegramObject): """Portion label""" amount: int """Price of the product in the *smallest units* of the `currency `_ (integer, **not** float/double). For example, for a price of :code:`US$ 1.45` pass :code:`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).""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, label: str, amount: int, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(label=label, amount=amount, **__pydantic_kwargs) diff --git a/aiogram/types/location.py b/aiogram/types/location.py index bac5fc70..853e57b6 100644 --- a/aiogram/types/location.py +++ b/aiogram/types/location.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramObject @@ -24,3 +24,32 @@ class Location(TelegramObject): """*Optional*. The direction in which user is moving, in degrees; 1-360. For active live locations only.""" proximity_alert_radius: Optional[int] = None """*Optional*. The maximum distance for proximity alerts about approaching another chat member, in meters. For sent live locations only.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + longitude: float, + latitude: float, + horizontal_accuracy: Optional[float] = None, + live_period: Optional[int] = None, + heading: Optional[int] = None, + proximity_alert_radius: Optional[int] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + longitude=longitude, + latitude=latitude, + horizontal_accuracy=horizontal_accuracy, + live_period=live_period, + heading=heading, + proximity_alert_radius=proximity_alert_radius, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/login_url.py b/aiogram/types/login_url.py index 95a66eac..6f6c94af 100644 --- a/aiogram/types/login_url.py +++ b/aiogram/types/login_url.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramObject @@ -23,3 +23,28 @@ class LoginUrl(TelegramObject): """*Optional*. Username of a bot, which will be used for user authorization. See `Setting up a bot `_ for more details. If not specified, the current bot's username will be assumed. The *url*'s domain must be the same as the domain linked with the bot. See `Linking your domain to the bot `_ for more details.""" request_write_access: Optional[bool] = None """*Optional*. Pass :code:`True` to request the permission for your bot to send messages to the user.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + url: str, + forward_text: Optional[str] = None, + bot_username: Optional[str] = None, + request_write_access: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + url=url, + forward_text=forward_text, + bot_username=bot_username, + request_write_access=request_write_access, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/mask_position.py b/aiogram/types/mask_position.py index 3eea5bda..d02852ab 100644 --- a/aiogram/types/mask_position.py +++ b/aiogram/types/mask_position.py @@ -1,5 +1,7 @@ from __future__ import annotations +from typing import TYPE_CHECKING, Any + from .base import TelegramObject @@ -18,3 +20,24 @@ class MaskPosition(TelegramObject): """Shift by Y-axis measured in heights of the mask scaled to the face size, from top to bottom. For example, 1.0 will place the mask just below the default mask position.""" scale: float """Mask scaling coefficient. For example, 2.0 means double size.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + point: str, + x_shift: float, + y_shift: float, + scale: float, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + point=point, x_shift=x_shift, y_shift=y_shift, scale=scale, **__pydantic_kwargs + ) diff --git a/aiogram/types/menu_button.py b/aiogram/types/menu_button.py index b37c2390..a06814c9 100644 --- a/aiogram/types/menu_button.py +++ b/aiogram/types/menu_button.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from .base import MutableTelegramObject @@ -27,3 +27,21 @@ class MenuButton(MutableTelegramObject): """*Optional*. Text on the button""" web_app: Optional[WebAppInfo] = None """*Optional*. 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`.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: str, + text: Optional[str] = None, + web_app: Optional[WebAppInfo] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(type=type, text=text, web_app=web_app, **__pydantic_kwargs) diff --git a/aiogram/types/menu_button_commands.py b/aiogram/types/menu_button_commands.py index 62a9061c..54ed20b1 100644 --- a/aiogram/types/menu_button_commands.py +++ b/aiogram/types/menu_button_commands.py @@ -1,6 +1,6 @@ from __future__ import annotations -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal from ..enums import MenuButtonType from .menu_button import MenuButton @@ -13,5 +13,21 @@ class MenuButtonCommands(MenuButton): Source: https://core.telegram.org/bots/api#menubuttoncommands """ - type: str = Field(MenuButtonType.COMMANDS, const=True) + type: Literal[MenuButtonType.COMMANDS] = MenuButtonType.COMMANDS """Type of the button, must be *commands*""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[MenuButtonType.COMMANDS] = MenuButtonType.COMMANDS, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(type=type, **__pydantic_kwargs) diff --git a/aiogram/types/menu_button_default.py b/aiogram/types/menu_button_default.py index dc754ec0..12ce30eb 100644 --- a/aiogram/types/menu_button_default.py +++ b/aiogram/types/menu_button_default.py @@ -1,6 +1,6 @@ from __future__ import annotations -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal from ..enums import MenuButtonType from .menu_button import MenuButton @@ -13,5 +13,21 @@ class MenuButtonDefault(MenuButton): Source: https://core.telegram.org/bots/api#menubuttondefault """ - type: str = Field(MenuButtonType.DEFAULT, const=True) + type: Literal[MenuButtonType.DEFAULT] = MenuButtonType.DEFAULT """Type of the button, must be *default*""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[MenuButtonType.DEFAULT] = MenuButtonType.DEFAULT, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(type=type, **__pydantic_kwargs) diff --git a/aiogram/types/menu_button_web_app.py b/aiogram/types/menu_button_web_app.py index f77ed2ea..bd285211 100644 --- a/aiogram/types/menu_button_web_app.py +++ b/aiogram/types/menu_button_web_app.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING - -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal from ..enums import MenuButtonType from .menu_button import MenuButton @@ -18,9 +16,27 @@ class MenuButtonWebApp(MenuButton): Source: https://core.telegram.org/bots/api#menubuttonwebapp """ - type: str = Field(MenuButtonType.WEB_APP, const=True) + type: Literal[MenuButtonType.WEB_APP] = MenuButtonType.WEB_APP """Type of the button, must be *web_app*""" text: str """Text on the button""" web_app: WebAppInfo """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`.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: Literal[MenuButtonType.WEB_APP] = MenuButtonType.WEB_APP, + text: str, + web_app: WebAppInfo, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(type=type, text=text, web_app=web_app, **__pydantic_kwargs) diff --git a/aiogram/types/message.py b/aiogram/types/message.py index a057ef97..87798b7e 100644 --- a/aiogram/types/message.py +++ b/aiogram/types/message.py @@ -1,7 +1,7 @@ from __future__ import annotations import datetime -from typing import TYPE_CHECKING, Any, List, Optional, Union +from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union from pydantic import Field @@ -18,6 +18,7 @@ from .base import ( UNSET_PROTECT_CONTENT, TelegramObject, ) +from .custom import DateTime if TYPE_CHECKING: from ..methods import ( @@ -67,7 +68,7 @@ if TYPE_CHECKING: from .general_forum_topic_unhidden import GeneralForumTopicUnhidden from .inline_keyboard_markup import InlineKeyboardMarkup from .input_file import InputFile - from .input_media import InputMedia + from .input_media_animation import InputMediaAnimation from .input_media_audio import InputMediaAudio from .input_media_document import InputMediaDocument from .input_media_photo import InputMediaPhoto @@ -84,6 +85,7 @@ if TYPE_CHECKING: from .reply_keyboard_markup import ReplyKeyboardMarkup from .reply_keyboard_remove import ReplyKeyboardRemove from .sticker import Sticker + from .story import Story from .successful_payment import SuccessfulPayment from .user import User from .user_shared import UserShared @@ -108,7 +110,7 @@ class Message(TelegramObject): message_id: int """Unique message identifier inside this chat""" - date: datetime.datetime + date: DateTime """Date the message was sent in Unix time""" chat: Chat """Conversation the message belongs to""" @@ -128,7 +130,7 @@ class Message(TelegramObject): """*Optional*. For forwarded messages that were originally sent in channels or by an anonymous chat administrator, signature of the message sender if present""" forward_sender_name: Optional[str] = None """*Optional*. Sender's name for messages forwarded from users who disallow adding a link to their account in forwarded messages""" - forward_date: Optional[int] = None + forward_date: Optional[DateTime] = None """*Optional*. For forwarded messages, date the original message was sent in Unix time""" is_topic_message: Optional[bool] = None """*Optional*. :code:`True`, if the message is sent to a forum topic""" @@ -160,6 +162,8 @@ class Message(TelegramObject): """*Optional*. Message is a photo, available sizes of the photo""" sticker: Optional[Sticker] = None """*Optional*. Message is a sticker, information about the sticker""" + story: Optional[Story] = None + """*Optional*. Message is a forwarded story""" video: Optional[Video] = None """*Optional*. Message is a video, information about the video""" video_note: Optional[VideoNote] = None @@ -219,7 +223,7 @@ class Message(TelegramObject): connected_website: Optional[str] = None """*Optional*. The domain name of the website on which the user has logged in. `More about Telegram Login » `_""" write_access_allowed: Optional[WriteAccessAllowed] = None - """*Optional*. Service message: the user allowed the bot added to the attachment menu to write messages""" + """*Optional*. Service message: the user allowed the bot to write messages after adding it to the attachment or side menu, launching a Web App from a link, or accepting an explicit request from a Web App sent by the method `requestWriteAccess `_""" passport_data: Optional[PassportData] = None """*Optional*. Telegram Passport data""" proximity_alert_triggered: Optional[ProximityAlertTriggered] = None @@ -249,6 +253,167 @@ class Message(TelegramObject): reply_markup: Optional[InlineKeyboardMarkup] = None """*Optional*. Inline keyboard attached to the message. :code:`login_url` buttons are represented as ordinary :code:`url` buttons.""" + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + message_id: int, + date: DateTime, + chat: Chat, + message_thread_id: Optional[int] = None, + from_user: Optional[User] = None, + sender_chat: Optional[Chat] = None, + forward_from: Optional[User] = None, + forward_from_chat: Optional[Chat] = None, + forward_from_message_id: Optional[int] = None, + forward_signature: Optional[str] = None, + forward_sender_name: Optional[str] = None, + forward_date: Optional[DateTime] = None, + is_topic_message: Optional[bool] = None, + is_automatic_forward: Optional[bool] = None, + reply_to_message: Optional[Message] = None, + via_bot: Optional[User] = None, + edit_date: Optional[int] = None, + has_protected_content: Optional[bool] = None, + media_group_id: Optional[str] = None, + author_signature: Optional[str] = None, + text: Optional[str] = None, + entities: Optional[List[MessageEntity]] = None, + animation: Optional[Animation] = None, + audio: Optional[Audio] = None, + document: Optional[Document] = None, + photo: Optional[List[PhotoSize]] = None, + sticker: Optional[Sticker] = None, + story: Optional[Story] = None, + video: Optional[Video] = None, + video_note: Optional[VideoNote] = None, + voice: Optional[Voice] = None, + caption: Optional[str] = None, + caption_entities: Optional[List[MessageEntity]] = None, + has_media_spoiler: Optional[bool] = None, + contact: Optional[Contact] = None, + dice: Optional[Dice] = None, + game: Optional[Game] = None, + poll: Optional[Poll] = None, + venue: Optional[Venue] = None, + location: Optional[Location] = None, + new_chat_members: Optional[List[User]] = None, + left_chat_member: Optional[User] = None, + new_chat_title: Optional[str] = None, + new_chat_photo: Optional[List[PhotoSize]] = None, + delete_chat_photo: Optional[bool] = None, + group_chat_created: Optional[bool] = None, + supergroup_chat_created: Optional[bool] = None, + channel_chat_created: Optional[bool] = None, + message_auto_delete_timer_changed: Optional[MessageAutoDeleteTimerChanged] = None, + migrate_to_chat_id: Optional[int] = None, + migrate_from_chat_id: Optional[int] = None, + pinned_message: Optional[Message] = None, + invoice: Optional[Invoice] = None, + successful_payment: Optional[SuccessfulPayment] = None, + user_shared: Optional[UserShared] = None, + chat_shared: Optional[ChatShared] = None, + connected_website: Optional[str] = None, + write_access_allowed: Optional[WriteAccessAllowed] = None, + passport_data: Optional[PassportData] = None, + proximity_alert_triggered: Optional[ProximityAlertTriggered] = None, + forum_topic_created: Optional[ForumTopicCreated] = None, + forum_topic_edited: Optional[ForumTopicEdited] = None, + forum_topic_closed: Optional[ForumTopicClosed] = None, + forum_topic_reopened: Optional[ForumTopicReopened] = None, + general_forum_topic_hidden: Optional[GeneralForumTopicHidden] = None, + general_forum_topic_unhidden: Optional[GeneralForumTopicUnhidden] = None, + video_chat_scheduled: Optional[VideoChatScheduled] = None, + video_chat_started: Optional[VideoChatStarted] = None, + video_chat_ended: Optional[VideoChatEnded] = None, + video_chat_participants_invited: Optional[VideoChatParticipantsInvited] = None, + web_app_data: Optional[WebAppData] = None, + reply_markup: Optional[InlineKeyboardMarkup] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + message_id=message_id, + date=date, + chat=chat, + message_thread_id=message_thread_id, + from_user=from_user, + sender_chat=sender_chat, + forward_from=forward_from, + forward_from_chat=forward_from_chat, + forward_from_message_id=forward_from_message_id, + forward_signature=forward_signature, + forward_sender_name=forward_sender_name, + forward_date=forward_date, + is_topic_message=is_topic_message, + is_automatic_forward=is_automatic_forward, + reply_to_message=reply_to_message, + via_bot=via_bot, + edit_date=edit_date, + has_protected_content=has_protected_content, + media_group_id=media_group_id, + author_signature=author_signature, + text=text, + entities=entities, + animation=animation, + audio=audio, + document=document, + photo=photo, + sticker=sticker, + story=story, + video=video, + video_note=video_note, + voice=voice, + caption=caption, + caption_entities=caption_entities, + has_media_spoiler=has_media_spoiler, + contact=contact, + dice=dice, + game=game, + poll=poll, + venue=venue, + location=location, + new_chat_members=new_chat_members, + left_chat_member=left_chat_member, + new_chat_title=new_chat_title, + new_chat_photo=new_chat_photo, + delete_chat_photo=delete_chat_photo, + group_chat_created=group_chat_created, + supergroup_chat_created=supergroup_chat_created, + channel_chat_created=channel_chat_created, + message_auto_delete_timer_changed=message_auto_delete_timer_changed, + migrate_to_chat_id=migrate_to_chat_id, + migrate_from_chat_id=migrate_from_chat_id, + pinned_message=pinned_message, + invoice=invoice, + successful_payment=successful_payment, + user_shared=user_shared, + chat_shared=chat_shared, + connected_website=connected_website, + write_access_allowed=write_access_allowed, + passport_data=passport_data, + proximity_alert_triggered=proximity_alert_triggered, + forum_topic_created=forum_topic_created, + forum_topic_edited=forum_topic_edited, + forum_topic_closed=forum_topic_closed, + forum_topic_reopened=forum_topic_reopened, + general_forum_topic_hidden=general_forum_topic_hidden, + general_forum_topic_unhidden=general_forum_topic_unhidden, + video_chat_scheduled=video_chat_scheduled, + video_chat_started=video_chat_started, + video_chat_ended=video_chat_ended, + video_chat_participants_invited=video_chat_participants_invited, + web_app_data=web_app_data, + reply_markup=reply_markup, + **__pydantic_kwargs, + ) + @property def content_type(self) -> str: if self.text: @@ -333,6 +498,12 @@ class Message(TelegramObject): return ContentType.VIDEO_CHAT_PARTICIPANTS_INVITED if self.web_app_data: return ContentType.WEB_APP_DATA + if self.user_shared: + return ContentType.USER_SHARED + if self.chat_shared: + return ContentType.CHAT_SHARED + if self.story: + return ContentType.STORY return ContentType.UNKNOWN @@ -400,6 +571,10 @@ class Message(TelegramObject): from aiogram.methods import SendAnimation + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendAnimation( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -418,7 +593,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def answer_animation( self, @@ -472,6 +647,10 @@ class Message(TelegramObject): from aiogram.methods import SendAnimation + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendAnimation( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -490,7 +669,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def reply_audio( self, @@ -542,6 +721,10 @@ class Message(TelegramObject): from aiogram.methods import SendAudio + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendAudio( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -559,7 +742,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def answer_audio( self, @@ -612,6 +795,10 @@ class Message(TelegramObject): from aiogram.methods import SendAudio + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendAudio( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -629,7 +816,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def reply_contact( self, @@ -672,6 +859,10 @@ class Message(TelegramObject): from aiogram.methods import SendContact + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendContact( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -685,7 +876,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def answer_contact( self, @@ -729,6 +920,10 @@ class Message(TelegramObject): from aiogram.methods import SendContact + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendContact( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -742,7 +937,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def reply_document( self, @@ -789,6 +984,10 @@ class Message(TelegramObject): from aiogram.methods import SendDocument + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendDocument( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -804,7 +1003,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def answer_document( self, @@ -852,6 +1051,10 @@ class Message(TelegramObject): from aiogram.methods import SendDocument + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendDocument( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -867,7 +1070,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def reply_game( self, @@ -902,6 +1105,10 @@ class Message(TelegramObject): from aiogram.methods import SendGame + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendGame( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -912,7 +1119,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def answer_game( self, @@ -948,6 +1155,10 @@ class Message(TelegramObject): from aiogram.methods import SendGame + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendGame( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -958,7 +1169,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def reply_invoice( self, @@ -1033,6 +1244,10 @@ class Message(TelegramObject): from aiogram.methods import SendInvoice + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendInvoice( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -1063,7 +1278,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def answer_invoice( self, @@ -1139,6 +1354,10 @@ class Message(TelegramObject): from aiogram.methods import SendInvoice + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendInvoice( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -1169,7 +1388,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def reply_location( self, @@ -1216,6 +1435,10 @@ class Message(TelegramObject): from aiogram.methods import SendLocation + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendLocation( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -1231,7 +1454,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def answer_location( self, @@ -1279,6 +1502,10 @@ class Message(TelegramObject): from aiogram.methods import SendLocation + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendLocation( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -1294,7 +1521,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def reply_media_group( self, @@ -1327,6 +1554,10 @@ class Message(TelegramObject): from aiogram.methods import SendMediaGroup + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendMediaGroup( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -1336,7 +1567,7 @@ class Message(TelegramObject): protect_content=protect_content, allow_sending_without_reply=allow_sending_without_reply, **kwargs, - ) + ).as_(self._bot) def answer_media_group( self, @@ -1370,6 +1601,10 @@ class Message(TelegramObject): from aiogram.methods import SendMediaGroup + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendMediaGroup( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -1379,7 +1614,7 @@ class Message(TelegramObject): reply_to_message_id=reply_to_message_id, allow_sending_without_reply=allow_sending_without_reply, **kwargs, - ) + ).as_(self._bot) def reply( self, @@ -1422,6 +1657,10 @@ class Message(TelegramObject): from aiogram.methods import SendMessage + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendMessage( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -1435,7 +1674,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def answer( self, @@ -1479,6 +1718,10 @@ class Message(TelegramObject): from aiogram.methods import SendMessage + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendMessage( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -1492,7 +1735,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def reply_photo( self, @@ -1537,6 +1780,10 @@ class Message(TelegramObject): from aiogram.methods import SendPhoto + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendPhoto( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -1551,7 +1798,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def answer_photo( self, @@ -1597,6 +1844,10 @@ class Message(TelegramObject): from aiogram.methods import SendPhoto + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendPhoto( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -1611,7 +1862,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def reply_poll( self, @@ -1670,6 +1921,10 @@ class Message(TelegramObject): from aiogram.methods import SendPoll + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendPoll( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -1691,7 +1946,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def answer_poll( self, @@ -1751,6 +2006,10 @@ class Message(TelegramObject): from aiogram.methods import SendPoll + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendPoll( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -1772,7 +2031,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def reply_dice( self, @@ -1809,6 +2068,10 @@ class Message(TelegramObject): from aiogram.methods import SendDice + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendDice( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -1819,7 +2082,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def answer_dice( self, @@ -1857,6 +2120,10 @@ class Message(TelegramObject): from aiogram.methods import SendDice + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendDice( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -1867,7 +2134,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def reply_sticker( self, @@ -1906,6 +2173,10 @@ class Message(TelegramObject): from aiogram.methods import SendSticker + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendSticker( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -1917,7 +2188,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def answer_sticker( self, @@ -1957,6 +2228,10 @@ class Message(TelegramObject): from aiogram.methods import SendSticker + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendSticker( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -1968,7 +2243,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def reply_venue( self, @@ -2019,6 +2294,10 @@ class Message(TelegramObject): from aiogram.methods import SendVenue + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendVenue( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -2036,7 +2315,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def answer_venue( self, @@ -2088,6 +2367,10 @@ class Message(TelegramObject): from aiogram.methods import SendVenue + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendVenue( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -2105,7 +2388,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def reply_video( self, @@ -2160,6 +2443,10 @@ class Message(TelegramObject): from aiogram.methods import SendVideo + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendVideo( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -2179,7 +2466,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def answer_video( self, @@ -2235,6 +2522,10 @@ class Message(TelegramObject): from aiogram.methods import SendVideo + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendVideo( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -2254,7 +2545,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def reply_video_note( self, @@ -2297,6 +2588,10 @@ class Message(TelegramObject): from aiogram.methods import SendVideoNote + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendVideoNote( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -2310,7 +2605,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def answer_video_note( self, @@ -2354,6 +2649,10 @@ class Message(TelegramObject): from aiogram.methods import SendVideoNote + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendVideoNote( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -2367,7 +2666,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def reply_voice( self, @@ -2412,6 +2711,10 @@ class Message(TelegramObject): from aiogram.methods import SendVoice + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendVoice( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -2426,7 +2729,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def answer_voice( self, @@ -2472,6 +2775,10 @@ class Message(TelegramObject): from aiogram.methods import SendVoice + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return SendVoice( chat_id=self.chat.id, message_thread_id=self.message_thread_id if self.is_topic_message else None, @@ -2486,7 +2793,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def send_copy( # noqa: C901 self: Message, @@ -2496,7 +2803,9 @@ class Message(TelegramObject): reply_markup: Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, None] = None, allow_sending_without_reply: Optional[bool] = None, message_thread_id: Optional[int] = None, + parse_mode: Optional[str] = None, ) -> Union[ + ForwardMessage, SendAnimation, SendAudio, SendContact, @@ -2513,14 +2822,14 @@ class Message(TelegramObject): SendVoice, ]: """ - Send copy of message. + Send copy of a message. Is similar to :meth:`aiogram.client.bot.Bot.copy_message` but returning the sent message instead of :class:`aiogram.types.message_id.MessageId` .. note:: - This method don't use the API method named `copyMessage` and + This method doesn't use the API method named `copyMessage` and historically implemented before the similar method is added to API :param chat_id: @@ -2529,9 +2838,11 @@ class Message(TelegramObject): :param reply_markup: :param allow_sending_without_reply: :param message_thread_id: + :param parse_mode: :return: """ from ..methods import ( + ForwardMessage, SendAnimation, SendAudio, SendContact, @@ -2548,51 +2859,77 @@ class Message(TelegramObject): SendVoice, ) - kwargs = { + kwargs: Dict[str, Any] = { "chat_id": chat_id, "reply_markup": reply_markup or self.reply_markup, "disable_notification": disable_notification, "reply_to_message_id": reply_to_message_id, "message_thread_id": message_thread_id, "allow_sending_without_reply": allow_sending_without_reply, + # when sending a copy, we don't need any parse mode + # because all entities are already prepared + "parse_mode": parse_mode, } - text = self.text or self.caption - entities = self.entities or self.caption_entities if self.text: - return SendMessage(text=text, entities=entities, **kwargs) + return SendMessage( + text=self.text, + entities=self.entities, + **kwargs, + ).as_(self._bot) if self.audio: return SendAudio( audio=self.audio.file_id, - caption=text, + caption=self.caption, title=self.audio.title, performer=self.audio.performer, duration=self.audio.duration, - caption_entities=entities, + caption_entities=self.caption_entities, **kwargs, - ) + ).as_(self._bot) if self.animation: return SendAnimation( - animation=self.animation.file_id, caption=text, caption_entities=entities, **kwargs - ) + animation=self.animation.file_id, + caption=self.caption, + caption_entities=self.caption_entities, + **kwargs, + ).as_(self._bot) if self.document: return SendDocument( - document=self.document.file_id, caption=text, caption_entities=entities, **kwargs - ) + document=self.document.file_id, + caption=self.caption, + caption_entities=self.caption_entities, + **kwargs, + ).as_(self._bot) if self.photo: return SendPhoto( - photo=self.photo[-1].file_id, caption=text, caption_entities=entities, **kwargs - ) + photo=self.photo[-1].file_id, + caption=self.caption, + caption_entities=self.caption_entities, + **kwargs, + ).as_(self._bot) if self.sticker: - return SendSticker(sticker=self.sticker.file_id, **kwargs) + return SendSticker( + sticker=self.sticker.file_id, + **kwargs, + ).as_(self._bot) if self.video: return SendVideo( - video=self.video.file_id, caption=text, caption_entities=entities, **kwargs - ) + video=self.video.file_id, + caption=self.caption, + caption_entities=self.caption_entities, + **kwargs, + ).as_(self._bot) if self.video_note: - return SendVideoNote(video_note=self.video_note.file_id, **kwargs) + return SendVideoNote( + video_note=self.video_note.file_id, + **kwargs, + ).as_(self._bot) if self.voice: - return SendVoice(voice=self.voice.file_id, **kwargs) + return SendVoice( + voice=self.voice.file_id, + **kwargs, + ).as_(self._bot) if self.contact: return SendContact( phone_number=self.contact.phone_number, @@ -2600,7 +2937,7 @@ class Message(TelegramObject): last_name=self.contact.last_name, vcard=self.contact.vcard, **kwargs, - ) + ).as_(self._bot) if self.venue: return SendVenue( latitude=self.venue.location.latitude, @@ -2610,19 +2947,29 @@ class Message(TelegramObject): foursquare_id=self.venue.foursquare_id, foursquare_type=self.venue.foursquare_type, **kwargs, - ) + ).as_(self._bot) if self.location: return SendLocation( - latitude=self.location.latitude, longitude=self.location.longitude, **kwargs - ) + latitude=self.location.latitude, + longitude=self.location.longitude, + **kwargs, + ).as_(self._bot) if self.poll: return SendPoll( question=self.poll.question, options=[option.text for option in self.poll.options], **kwargs, - ) + ).as_(self._bot) if self.dice: # Dice value can't be controlled - return SendDice(**kwargs) + return SendDice( + **kwargs, + ).as_(self._bot) + if self.story: + return ForwardMessage( + from_chat_id=self.chat.id, + message_id=self.message_id, + **kwargs, + ).as_(self._bot) raise TypeError("This type of message can't be copied.") @@ -2670,6 +3017,10 @@ class Message(TelegramObject): from aiogram.methods import CopyMessage + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return CopyMessage( from_chat_id=self.chat.id, message_id=self.message_id, @@ -2684,7 +3035,7 @@ class Message(TelegramObject): allow_sending_without_reply=allow_sending_without_reply, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def edit_text( self, @@ -2720,6 +3071,10 @@ class Message(TelegramObject): from aiogram.methods import EditMessageText + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return EditMessageText( chat_id=self.chat.id, message_id=self.message_id, @@ -2730,7 +3085,7 @@ class Message(TelegramObject): disable_web_page_preview=disable_web_page_preview, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def forward( self, @@ -2762,6 +3117,10 @@ class Message(TelegramObject): from aiogram.methods import ForwardMessage + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return ForwardMessage( from_chat_id=self.chat.id, message_id=self.message_id, @@ -2770,11 +3129,17 @@ class Message(TelegramObject): disable_notification=disable_notification, protect_content=protect_content, **kwargs, - ) + ).as_(self._bot) def edit_media( self, - media: InputMedia, + media: Union[ + InputMediaAnimation, + InputMediaDocument, + InputMediaAudio, + InputMediaPhoto, + InputMediaVideo, + ], inline_message_id: Optional[str] = None, reply_markup: Optional[InlineKeyboardMarkup] = None, **kwargs: Any, @@ -2800,6 +3165,10 @@ class Message(TelegramObject): from aiogram.methods import EditMessageMedia + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return EditMessageMedia( chat_id=self.chat.id, message_id=self.message_id, @@ -2807,7 +3176,7 @@ class Message(TelegramObject): inline_message_id=inline_message_id, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def edit_reply_markup( self, @@ -2835,16 +3204,54 @@ class Message(TelegramObject): from aiogram.methods import EditMessageReplyMarkup + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return EditMessageReplyMarkup( chat_id=self.chat.id, message_id=self.message_id, inline_message_id=inline_message_id, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) - def delete_reply_markup(self) -> EditMessageReplyMarkup: - return self.edit_reply_markup(reply_markup=None) + def delete_reply_markup( + self, + inline_message_id: Optional[str] = None, + **kwargs: Any, + ) -> EditMessageReplyMarkup: + """ + Shortcut for method :class:`aiogram.methods.edit_message_reply_markup.EditMessageReplyMarkup` + will automatically fill method attributes: + + - :code:`chat_id` + - :code:`message_id` + - :code:`reply_markup` + + 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. + + Source: https://core.telegram.org/bots/api#editmessagereplymarkup + + :param inline_message_id: Required if *chat_id* and *message_id* are not specified. Identifier of the inline message + :return: instance of method :class:`aiogram.methods.edit_message_reply_markup.EditMessageReplyMarkup` + """ + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import EditMessageReplyMarkup + + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + + return EditMessageReplyMarkup( + chat_id=self.chat.id, + message_id=self.message_id, + reply_markup=None, + inline_message_id=inline_message_id, + **kwargs, + ).as_(self._bot) def edit_live_location( self, @@ -2882,6 +3289,10 @@ class Message(TelegramObject): from aiogram.methods import EditMessageLiveLocation + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return EditMessageLiveLocation( chat_id=self.chat.id, message_id=self.message_id, @@ -2893,7 +3304,7 @@ class Message(TelegramObject): proximity_alert_radius=proximity_alert_radius, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def stop_live_location( self, @@ -2921,13 +3332,17 @@ class Message(TelegramObject): from aiogram.methods import StopMessageLiveLocation + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return StopMessageLiveLocation( chat_id=self.chat.id, message_id=self.message_id, inline_message_id=inline_message_id, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def edit_caption( self, @@ -2961,6 +3376,10 @@ class Message(TelegramObject): from aiogram.methods import EditMessageCaption + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return EditMessageCaption( chat_id=self.chat.id, message_id=self.message_id, @@ -2970,7 +3389,7 @@ class Message(TelegramObject): caption_entities=caption_entities, reply_markup=reply_markup, **kwargs, - ) + ).as_(self._bot) def delete( self, @@ -3012,11 +3431,15 @@ class Message(TelegramObject): from aiogram.methods import DeleteMessage + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return DeleteMessage( chat_id=self.chat.id, message_id=self.message_id, **kwargs, - ) + ).as_(self._bot) def pin( self, @@ -3042,12 +3465,16 @@ class Message(TelegramObject): from aiogram.methods import PinChatMessage + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return PinChatMessage( chat_id=self.chat.id, message_id=self.message_id, disable_notification=disable_notification, **kwargs, - ) + ).as_(self._bot) def unpin( self, @@ -3071,11 +3498,15 @@ class Message(TelegramObject): from aiogram.methods import UnpinChatMessage + assert ( + self.chat is not None + ), "This method can be used only if chat is present in the message." + return UnpinChatMessage( chat_id=self.chat.id, message_id=self.message_id, **kwargs, - ) + ).as_(self._bot) def get_url(self, force_private: bool = False) -> Optional[str]: """ diff --git a/aiogram/types/message_auto_delete_timer_changed.py b/aiogram/types/message_auto_delete_timer_changed.py index 4957f08e..8414a247 100644 --- a/aiogram/types/message_auto_delete_timer_changed.py +++ b/aiogram/types/message_auto_delete_timer_changed.py @@ -1,5 +1,7 @@ from __future__ import annotations +from typing import TYPE_CHECKING, Any + from .base import TelegramObject @@ -12,3 +14,18 @@ class MessageAutoDeleteTimerChanged(TelegramObject): message_auto_delete_time: int """New auto-delete time for messages in the chat; in seconds""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, message_auto_delete_time: int, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + message_auto_delete_time=message_auto_delete_time, **__pydantic_kwargs + ) diff --git a/aiogram/types/message_entity.py b/aiogram/types/message_entity.py index 39773a66..79ba5980 100644 --- a/aiogram/types/message_entity.py +++ b/aiogram/types/message_entity.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from ..utils.text_decorations import add_surrogates, remove_surrogates from .base import MutableTelegramObject @@ -31,6 +31,37 @@ class MessageEntity(MutableTelegramObject): custom_emoji_id: Optional[str] = None """*Optional*. For 'custom_emoji' only, unique identifier of the custom emoji. Use :class:`aiogram.methods.get_custom_emoji_stickers.GetCustomEmojiStickers` to get full information about the sticker""" + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + type: str, + offset: int, + length: int, + url: Optional[str] = None, + user: Optional[User] = None, + language: Optional[str] = None, + custom_emoji_id: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + type=type, + offset=offset, + length=length, + url=url, + user=user, + language=language, + custom_emoji_id=custom_emoji_id, + **__pydantic_kwargs, + ) + def extract_from(self, text: str) -> str: return remove_surrogates( add_surrogates(text)[self.offset * 2 : (self.offset + self.length) * 2] diff --git a/aiogram/types/message_id.py b/aiogram/types/message_id.py index edd4784c..d50888f8 100644 --- a/aiogram/types/message_id.py +++ b/aiogram/types/message_id.py @@ -1,5 +1,7 @@ from __future__ import annotations +from typing import TYPE_CHECKING, Any + from .base import TelegramObject @@ -12,3 +14,14 @@ class MessageId(TelegramObject): message_id: int """Unique message identifier""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__(__pydantic__self__, *, message_id: int, **__pydantic_kwargs: Any) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(message_id=message_id, **__pydantic_kwargs) diff --git a/aiogram/types/order_info.py b/aiogram/types/order_info.py index bf354b5e..5d71f657 100644 --- a/aiogram/types/order_info.py +++ b/aiogram/types/order_info.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramObject @@ -23,3 +23,28 @@ class OrderInfo(TelegramObject): """*Optional*. User email""" shipping_address: Optional[ShippingAddress] = None """*Optional*. User shipping address""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + name: Optional[str] = None, + phone_number: Optional[str] = None, + email: Optional[str] = None, + shipping_address: Optional[ShippingAddress] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + name=name, + phone_number=phone_number, + email=email, + shipping_address=shipping_address, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/passport_data.py b/aiogram/types/passport_data.py index 18523c05..d93af1f0 100644 --- a/aiogram/types/passport_data.py +++ b/aiogram/types/passport_data.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List +from typing import TYPE_CHECKING, Any, List from .base import TelegramObject @@ -20,3 +20,20 @@ class PassportData(TelegramObject): """Array with information about documents and other Telegram Passport elements that was shared with the bot""" credentials: EncryptedCredentials """Encrypted credentials required to decrypt the data""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + data: List[EncryptedPassportElement], + credentials: EncryptedCredentials, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(data=data, credentials=credentials, **__pydantic_kwargs) diff --git a/aiogram/types/passport_element_error_data_field.py b/aiogram/types/passport_element_error_data_field.py index f5b0b67b..3bf2bb28 100644 --- a/aiogram/types/passport_element_error_data_field.py +++ b/aiogram/types/passport_element_error_data_field.py @@ -1,7 +1,8 @@ from __future__ import annotations -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal +from ..enums import PassportElementErrorType from .passport_element_error import PassportElementError @@ -12,7 +13,7 @@ class PassportElementErrorDataField(PassportElementError): Source: https://core.telegram.org/bots/api#passportelementerrordatafield """ - source: str = Field("data", const=True) + source: Literal[PassportElementErrorType.DATA] = PassportElementErrorType.DATA """Error source, must be *data*""" type: str """The section of the user's Telegram Passport which has the error, one of 'personal_details', 'passport', 'driver_license', 'identity_card', 'internal_passport', 'address'""" @@ -22,3 +23,30 @@ class PassportElementErrorDataField(PassportElementError): """Base64-encoded data hash""" message: str """Error message""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + source: Literal[PassportElementErrorType.DATA] = PassportElementErrorType.DATA, + type: str, + field_name: str, + data_hash: str, + message: str, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + source=source, + type=type, + field_name=field_name, + data_hash=data_hash, + message=message, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/passport_element_error_file.py b/aiogram/types/passport_element_error_file.py index 217deaaa..8bc40b3e 100644 --- a/aiogram/types/passport_element_error_file.py +++ b/aiogram/types/passport_element_error_file.py @@ -1,7 +1,8 @@ from __future__ import annotations -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal +from ..enums import PassportElementErrorType from .passport_element_error import PassportElementError @@ -12,7 +13,7 @@ class PassportElementErrorFile(PassportElementError): Source: https://core.telegram.org/bots/api#passportelementerrorfile """ - source: str = Field("file", const=True) + source: Literal[PassportElementErrorType.FILE] = PassportElementErrorType.FILE """Error source, must be *file*""" type: str """The section of the user's Telegram Passport which has the issue, one of 'utility_bill', 'bank_statement', 'rental_agreement', 'passport_registration', 'temporary_registration'""" @@ -20,3 +21,24 @@ class PassportElementErrorFile(PassportElementError): """Base64-encoded file hash""" message: str """Error message""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + source: Literal[PassportElementErrorType.FILE] = PassportElementErrorType.FILE, + type: str, + file_hash: str, + message: str, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + source=source, type=type, file_hash=file_hash, message=message, **__pydantic_kwargs + ) diff --git a/aiogram/types/passport_element_error_files.py b/aiogram/types/passport_element_error_files.py index 6f42d693..3639da26 100644 --- a/aiogram/types/passport_element_error_files.py +++ b/aiogram/types/passport_element_error_files.py @@ -1,9 +1,8 @@ from __future__ import annotations -from typing import List - -from pydantic import Field +from typing import TYPE_CHECKING, Any, List, Literal +from ..enums import PassportElementErrorType from .passport_element_error import PassportElementError @@ -14,7 +13,7 @@ class PassportElementErrorFiles(PassportElementError): Source: https://core.telegram.org/bots/api#passportelementerrorfiles """ - source: str = Field("files", const=True) + source: Literal[PassportElementErrorType.FILES] = PassportElementErrorType.FILES """Error source, must be *files*""" type: str """The section of the user's Telegram Passport which has the issue, one of 'utility_bill', 'bank_statement', 'rental_agreement', 'passport_registration', 'temporary_registration'""" @@ -22,3 +21,28 @@ class PassportElementErrorFiles(PassportElementError): """List of base64-encoded file hashes""" message: str """Error message""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + source: Literal[PassportElementErrorType.FILES] = PassportElementErrorType.FILES, + type: str, + file_hashes: List[str], + message: str, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + source=source, + type=type, + file_hashes=file_hashes, + message=message, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/passport_element_error_front_side.py b/aiogram/types/passport_element_error_front_side.py index 98e60acd..86315f23 100644 --- a/aiogram/types/passport_element_error_front_side.py +++ b/aiogram/types/passport_element_error_front_side.py @@ -1,7 +1,8 @@ from __future__ import annotations -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal +from ..enums import PassportElementErrorType from .passport_element_error import PassportElementError @@ -12,7 +13,7 @@ class PassportElementErrorFrontSide(PassportElementError): Source: https://core.telegram.org/bots/api#passportelementerrorfrontside """ - source: str = Field("front_side", const=True) + source: Literal[PassportElementErrorType.FRONT_SIDE] = PassportElementErrorType.FRONT_SIDE """Error source, must be *front_side*""" type: str """The section of the user's Telegram Passport which has the issue, one of 'passport', 'driver_license', 'identity_card', 'internal_passport'""" @@ -20,3 +21,26 @@ class PassportElementErrorFrontSide(PassportElementError): """Base64-encoded hash of the file with the front side of the document""" message: str """Error message""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + source: Literal[ + PassportElementErrorType.FRONT_SIDE + ] = PassportElementErrorType.FRONT_SIDE, + type: str, + file_hash: str, + message: str, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + source=source, type=type, file_hash=file_hash, message=message, **__pydantic_kwargs + ) diff --git a/aiogram/types/passport_element_error_reverse_side.py b/aiogram/types/passport_element_error_reverse_side.py index 0c6073ba..ecb400f4 100644 --- a/aiogram/types/passport_element_error_reverse_side.py +++ b/aiogram/types/passport_element_error_reverse_side.py @@ -1,7 +1,8 @@ from __future__ import annotations -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal +from ..enums import PassportElementErrorType from .passport_element_error import PassportElementError @@ -12,7 +13,7 @@ class PassportElementErrorReverseSide(PassportElementError): Source: https://core.telegram.org/bots/api#passportelementerrorreverseside """ - source: str = Field("reverse_side", const=True) + source: Literal[PassportElementErrorType.REVERSE_SIDE] = PassportElementErrorType.REVERSE_SIDE """Error source, must be *reverse_side*""" type: str """The section of the user's Telegram Passport which has the issue, one of 'driver_license', 'identity_card'""" @@ -20,3 +21,26 @@ class PassportElementErrorReverseSide(PassportElementError): """Base64-encoded hash of the file with the reverse side of the document""" message: str """Error message""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + source: Literal[ + PassportElementErrorType.REVERSE_SIDE + ] = PassportElementErrorType.REVERSE_SIDE, + type: str, + file_hash: str, + message: str, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + source=source, type=type, file_hash=file_hash, message=message, **__pydantic_kwargs + ) diff --git a/aiogram/types/passport_element_error_selfie.py b/aiogram/types/passport_element_error_selfie.py index 4a3b2fe1..bff6dd61 100644 --- a/aiogram/types/passport_element_error_selfie.py +++ b/aiogram/types/passport_element_error_selfie.py @@ -1,7 +1,8 @@ from __future__ import annotations -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal +from ..enums import PassportElementErrorType from .passport_element_error import PassportElementError @@ -12,7 +13,7 @@ class PassportElementErrorSelfie(PassportElementError): Source: https://core.telegram.org/bots/api#passportelementerrorselfie """ - source: str = Field("selfie", const=True) + source: Literal[PassportElementErrorType.SELFIE] = PassportElementErrorType.SELFIE """Error source, must be *selfie*""" type: str """The section of the user's Telegram Passport which has the issue, one of 'passport', 'driver_license', 'identity_card', 'internal_passport'""" @@ -20,3 +21,24 @@ class PassportElementErrorSelfie(PassportElementError): """Base64-encoded hash of the file with the selfie""" message: str """Error message""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + source: Literal[PassportElementErrorType.SELFIE] = PassportElementErrorType.SELFIE, + type: str, + file_hash: str, + message: str, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + source=source, type=type, file_hash=file_hash, message=message, **__pydantic_kwargs + ) diff --git a/aiogram/types/passport_element_error_translation_file.py b/aiogram/types/passport_element_error_translation_file.py index d4106453..a8a207c4 100644 --- a/aiogram/types/passport_element_error_translation_file.py +++ b/aiogram/types/passport_element_error_translation_file.py @@ -1,7 +1,8 @@ from __future__ import annotations -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal +from ..enums import PassportElementErrorType from .passport_element_error import PassportElementError @@ -12,7 +13,9 @@ class PassportElementErrorTranslationFile(PassportElementError): Source: https://core.telegram.org/bots/api#passportelementerrortranslationfile """ - source: str = Field("translation_file", const=True) + source: Literal[ + PassportElementErrorType.TRANSLATION_FILE + ] = PassportElementErrorType.TRANSLATION_FILE """Error source, must be *translation_file*""" type: str """Type of element of the user's Telegram Passport which has the issue, one of 'passport', 'driver_license', 'identity_card', 'internal_passport', 'utility_bill', 'bank_statement', 'rental_agreement', 'passport_registration', 'temporary_registration'""" @@ -20,3 +23,26 @@ class PassportElementErrorTranslationFile(PassportElementError): """Base64-encoded file hash""" message: str """Error message""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + source: Literal[ + PassportElementErrorType.TRANSLATION_FILE + ] = PassportElementErrorType.TRANSLATION_FILE, + type: str, + file_hash: str, + message: str, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + source=source, type=type, file_hash=file_hash, message=message, **__pydantic_kwargs + ) diff --git a/aiogram/types/passport_element_error_translation_files.py b/aiogram/types/passport_element_error_translation_files.py index df0db64f..0d8ff504 100644 --- a/aiogram/types/passport_element_error_translation_files.py +++ b/aiogram/types/passport_element_error_translation_files.py @@ -1,9 +1,8 @@ from __future__ import annotations -from typing import List - -from pydantic import Field +from typing import TYPE_CHECKING, Any, List, Literal +from ..enums import PassportElementErrorType from .passport_element_error import PassportElementError @@ -14,7 +13,9 @@ class PassportElementErrorTranslationFiles(PassportElementError): Source: https://core.telegram.org/bots/api#passportelementerrortranslationfiles """ - source: str = Field("translation_files", const=True) + source: Literal[ + PassportElementErrorType.TRANSLATION_FILES + ] = PassportElementErrorType.TRANSLATION_FILES """Error source, must be *translation_files*""" type: str """Type of element of the user's Telegram Passport which has the issue, one of 'passport', 'driver_license', 'identity_card', 'internal_passport', 'utility_bill', 'bank_statement', 'rental_agreement', 'passport_registration', 'temporary_registration'""" @@ -22,3 +23,30 @@ class PassportElementErrorTranslationFiles(PassportElementError): """List of base64-encoded file hashes""" message: str """Error message""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + source: Literal[ + PassportElementErrorType.TRANSLATION_FILES + ] = PassportElementErrorType.TRANSLATION_FILES, + type: str, + file_hashes: List[str], + message: str, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + source=source, + type=type, + file_hashes=file_hashes, + message=message, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/passport_element_error_unspecified.py b/aiogram/types/passport_element_error_unspecified.py index 39d0c417..3575d350 100644 --- a/aiogram/types/passport_element_error_unspecified.py +++ b/aiogram/types/passport_element_error_unspecified.py @@ -1,7 +1,8 @@ from __future__ import annotations -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal +from ..enums import PassportElementErrorType from .passport_element_error import PassportElementError @@ -12,7 +13,7 @@ class PassportElementErrorUnspecified(PassportElementError): Source: https://core.telegram.org/bots/api#passportelementerrorunspecified """ - source: str = Field("unspecified", const=True) + source: Literal[PassportElementErrorType.UNSPECIFIED] = PassportElementErrorType.UNSPECIFIED """Error source, must be *unspecified*""" type: str """Type of element of the user's Telegram Passport which has the issue""" @@ -20,3 +21,30 @@ class PassportElementErrorUnspecified(PassportElementError): """Base64-encoded element hash""" message: str """Error message""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + source: Literal[ + PassportElementErrorType.UNSPECIFIED + ] = PassportElementErrorType.UNSPECIFIED, + type: str, + element_hash: str, + message: str, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + source=source, + type=type, + element_hash=element_hash, + message=message, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/passport_file.py b/aiogram/types/passport_file.py index 11a388f8..1e80048b 100644 --- a/aiogram/types/passport_file.py +++ b/aiogram/types/passport_file.py @@ -1,5 +1,7 @@ from __future__ import annotations +from typing import TYPE_CHECKING, Any + from .base import TelegramObject @@ -18,3 +20,28 @@ class PassportFile(TelegramObject): """File size in bytes""" file_date: int """Unix time when the file was uploaded""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + file_id: str, + file_unique_id: str, + file_size: int, + file_date: int, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + file_id=file_id, + file_unique_id=file_unique_id, + file_size=file_size, + file_date=file_date, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/photo_size.py b/aiogram/types/photo_size.py index 0b23b377..9a2ccbe1 100644 --- a/aiogram/types/photo_size.py +++ b/aiogram/types/photo_size.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramObject @@ -22,3 +22,30 @@ class PhotoSize(TelegramObject): """Photo height""" file_size: Optional[int] = None """*Optional*. File size in bytes""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + file_id: str, + file_unique_id: str, + width: int, + height: int, + file_size: Optional[int] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + file_id=file_id, + file_unique_id=file_unique_id, + width=width, + height=height, + file_size=file_size, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/poll.py b/aiogram/types/poll.py index fb979a58..ecf39f73 100644 --- a/aiogram/types/poll.py +++ b/aiogram/types/poll.py @@ -1,9 +1,9 @@ from __future__ import annotations -import datetime -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Any, List, Optional from .base import TelegramObject +from .custom import DateTime if TYPE_CHECKING: from .message_entity import MessageEntity @@ -41,5 +41,48 @@ class Poll(TelegramObject): """*Optional*. Special entities like usernames, URLs, bot commands, etc. that appear in the *explanation*""" open_period: Optional[int] = None """*Optional*. Amount of time in seconds the poll will be active after creation""" - close_date: Optional[datetime.datetime] = None + close_date: Optional[DateTime] = None """*Optional*. Point in time (Unix timestamp) when the poll will be automatically closed""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + id: str, + question: str, + options: List[PollOption], + total_voter_count: int, + is_closed: bool, + is_anonymous: bool, + type: str, + allows_multiple_answers: bool, + correct_option_id: Optional[int] = None, + explanation: Optional[str] = None, + explanation_entities: Optional[List[MessageEntity]] = None, + open_period: Optional[int] = None, + close_date: Optional[DateTime] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + id=id, + question=question, + options=options, + total_voter_count=total_voter_count, + is_closed=is_closed, + is_anonymous=is_anonymous, + type=type, + allows_multiple_answers=allows_multiple_answers, + correct_option_id=correct_option_id, + explanation=explanation, + explanation_entities=explanation_entities, + open_period=open_period, + close_date=close_date, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/poll_answer.py b/aiogram/types/poll_answer.py index c2cd7456..c12be34f 100644 --- a/aiogram/types/poll_answer.py +++ b/aiogram/types/poll_answer.py @@ -1,10 +1,11 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List +from typing import TYPE_CHECKING, Any, List, Optional from .base import TelegramObject if TYPE_CHECKING: + from .chat import Chat from .user import User @@ -17,7 +18,34 @@ class PollAnswer(TelegramObject): poll_id: str """Unique poll identifier""" - user: User - """The user, who changed the answer to the poll""" option_ids: List[int] - """0-based identifiers of answer options, chosen by the user. May be empty if the user retracted their vote.""" + """0-based identifiers of chosen answer options. May be empty if the vote was retracted.""" + voter_chat: Optional[Chat] = None + """*Optional*. The chat that changed the answer to the poll, if the voter is anonymous""" + user: Optional[User] = None + """*Optional*. The user that changed the answer to the poll, if the voter isn't anonymous""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + poll_id: str, + option_ids: List[int], + voter_chat: Optional[Chat] = None, + user: Optional[User] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + poll_id=poll_id, + option_ids=option_ids, + voter_chat=voter_chat, + user=user, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/poll_option.py b/aiogram/types/poll_option.py index cb69aa49..f3059f01 100644 --- a/aiogram/types/poll_option.py +++ b/aiogram/types/poll_option.py @@ -1,5 +1,7 @@ from __future__ import annotations +from typing import TYPE_CHECKING, Any + from .base import TelegramObject @@ -14,3 +16,16 @@ class PollOption(TelegramObject): """Option text, 1-100 characters""" voter_count: int """Number of users that voted for this option""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, text: str, voter_count: int, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(text=text, voter_count=voter_count, **__pydantic_kwargs) diff --git a/aiogram/types/pre_checkout_query.py b/aiogram/types/pre_checkout_query.py index f2e49170..6c10650f 100644 --- a/aiogram/types/pre_checkout_query.py +++ b/aiogram/types/pre_checkout_query.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from pydantic import Field @@ -34,16 +34,65 @@ class PreCheckoutQuery(TelegramObject): order_info: Optional[OrderInfo] = None """*Optional*. Order information provided by the user""" - def answer(self, ok: bool, error_message: Optional[str] = None) -> AnswerPreCheckoutQuery: + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + id: str, + from_user: User, + currency: str, + total_amount: int, + invoice_payload: str, + shipping_option_id: Optional[str] = None, + order_info: Optional[OrderInfo] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + id=id, + from_user=from_user, + currency=currency, + total_amount=total_amount, + invoice_payload=invoice_payload, + shipping_option_id=shipping_option_id, + order_info=order_info, + **__pydantic_kwargs, + ) + + def answer( + self, + ok: bool, + error_message: Optional[str] = None, + **kwargs: Any, + ) -> AnswerPreCheckoutQuery: """ - :param ok: - :param error_message: - :return: + Shortcut for method :class:`aiogram.methods.answer_pre_checkout_query.AnswerPreCheckoutQuery` + will automatically fill method attributes: + + - :code:`pre_checkout_query_id` + + Once the user has confirmed their payment and shipping details, the Bot API sends the final confirmation in the form of an :class:`aiogram.types.update.Update` with the field *pre_checkout_query*. Use this method to respond to such pre-checkout queries. On success, :code:`True` is returned. **Note:** The Bot API must receive an answer within 10 seconds after the pre-checkout query was sent. + + Source: https://core.telegram.org/bots/api#answerprecheckoutquery + + :param ok: Specify :code:`True` if everything is alright (goods are available, etc.) and the bot is ready to proceed with the order. Use :code:`False` if there are any problems. + :param error_message: Required if *ok* is :code:`False`. Error message in human readable form that explains the reason for failure to proceed with the checkout (e.g. "Sorry, somebody just bought the last of our amazing black T-shirts while you were busy filling out your payment details. Please choose a different color or garment!"). Telegram will display this message to the user. + :return: instance of method :class:`aiogram.methods.answer_pre_checkout_query.AnswerPreCheckoutQuery` """ - from ..methods import AnswerPreCheckoutQuery + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import AnswerPreCheckoutQuery return AnswerPreCheckoutQuery( pre_checkout_query_id=self.id, ok=ok, error_message=error_message, - ) + **kwargs, + ).as_(self._bot) diff --git a/aiogram/types/proximity_alert_triggered.py b/aiogram/types/proximity_alert_triggered.py index 8275cd26..f5a30c69 100644 --- a/aiogram/types/proximity_alert_triggered.py +++ b/aiogram/types/proximity_alert_triggered.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any from .base import TelegramObject @@ -21,3 +21,23 @@ class ProximityAlertTriggered(TelegramObject): """User that set the alert""" distance: int """The distance between the users""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + traveler: User, + watcher: User, + distance: int, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + traveler=traveler, watcher=watcher, distance=distance, **__pydantic_kwargs + ) diff --git a/aiogram/types/reply_keyboard_markup.py b/aiogram/types/reply_keyboard_markup.py index da2f6214..feaa382b 100644 --- a/aiogram/types/reply_keyboard_markup.py +++ b/aiogram/types/reply_keyboard_markup.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Any, List, Optional from .base import MutableTelegramObject @@ -27,3 +27,32 @@ class ReplyKeyboardMarkup(MutableTelegramObject): """*Optional*. The placeholder to be shown in the input field when the keyboard is active; 1-64 characters""" selective: Optional[bool] = None """*Optional*. Use this parameter if you want to show the keyboard to specific users only. Targets: 1) users that are @mentioned in the *text* of the :class:`aiogram.types.message.Message` object; 2) if the bot's message is a reply (has *reply_to_message_id*), sender of the original message.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + keyboard: List[List[KeyboardButton]], + is_persistent: Optional[bool] = None, + resize_keyboard: Optional[bool] = None, + one_time_keyboard: Optional[bool] = None, + input_field_placeholder: Optional[str] = None, + selective: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + keyboard=keyboard, + is_persistent=is_persistent, + resize_keyboard=resize_keyboard, + one_time_keyboard=one_time_keyboard, + input_field_placeholder=input_field_placeholder, + selective=selective, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/reply_keyboard_remove.py b/aiogram/types/reply_keyboard_remove.py index 1e2c2da9..5737db3f 100644 --- a/aiogram/types/reply_keyboard_remove.py +++ b/aiogram/types/reply_keyboard_remove.py @@ -1,8 +1,6 @@ from __future__ import annotations -from typing import Optional - -from pydantic import Field +from typing import TYPE_CHECKING, Any, Literal, Optional from .base import MutableTelegramObject @@ -14,7 +12,26 @@ class ReplyKeyboardRemove(MutableTelegramObject): Source: https://core.telegram.org/bots/api#replykeyboardremove """ - remove_keyboard: bool = Field(True, const=True) + remove_keyboard: Literal[True] = True """Requests clients to remove the custom keyboard (user will not be able to summon this keyboard; if you want to hide the keyboard from sight but keep it accessible, use *one_time_keyboard* in :class:`aiogram.types.reply_keyboard_markup.ReplyKeyboardMarkup`)""" selective: Optional[bool] = None """*Optional*. Use this parameter if you want to remove the keyboard for specific users only. Targets: 1) users that are @mentioned in the *text* of the :class:`aiogram.types.message.Message` object; 2) if the bot's message is a reply (has *reply_to_message_id*), sender of the original message.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + remove_keyboard: Literal[True] = True, + selective: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + remove_keyboard=remove_keyboard, selective=selective, **__pydantic_kwargs + ) diff --git a/aiogram/types/response_parameters.py b/aiogram/types/response_parameters.py index dd3531c2..19fc54fb 100644 --- a/aiogram/types/response_parameters.py +++ b/aiogram/types/response_parameters.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramObject @@ -16,3 +16,22 @@ class ResponseParameters(TelegramObject): """*Optional*. The group has been migrated to a supergroup with the specified identifier. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this identifier.""" retry_after: Optional[int] = None """*Optional*. In case of exceeding flood control, the number of seconds left to wait before the request can be repeated""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + migrate_to_chat_id: Optional[int] = None, + retry_after: Optional[int] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + migrate_to_chat_id=migrate_to_chat_id, retry_after=retry_after, **__pydantic_kwargs + ) diff --git a/aiogram/types/sent_web_app_message.py b/aiogram/types/sent_web_app_message.py index 7162d9b7..e8241a5f 100644 --- a/aiogram/types/sent_web_app_message.py +++ b/aiogram/types/sent_web_app_message.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramObject @@ -14,3 +14,19 @@ class SentWebAppMessage(TelegramObject): inline_message_id: Optional[str] = None """*Optional*. Identifier of the sent inline message. Available only if there is an `inline keyboard `_ attached to the message.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + inline_message_id: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(inline_message_id=inline_message_id, **__pydantic_kwargs) diff --git a/aiogram/types/shipping_address.py b/aiogram/types/shipping_address.py index 948956ce..735e2ce3 100644 --- a/aiogram/types/shipping_address.py +++ b/aiogram/types/shipping_address.py @@ -1,5 +1,7 @@ from __future__ import annotations +from typing import TYPE_CHECKING, Any + from .base import TelegramObject @@ -22,3 +24,32 @@ class ShippingAddress(TelegramObject): """Second line for the address""" post_code: str """Address post code""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + country_code: str, + state: str, + city: str, + street_line1: str, + street_line2: str, + post_code: str, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + country_code=country_code, + state=state, + city=city, + street_line1=street_line1, + street_line2=street_line2, + post_code=post_code, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/shipping_option.py b/aiogram/types/shipping_option.py index 6caa84a5..b0274518 100644 --- a/aiogram/types/shipping_option.py +++ b/aiogram/types/shipping_option.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List +from typing import TYPE_CHECKING, Any, List from .base import TelegramObject @@ -21,3 +21,21 @@ class ShippingOption(TelegramObject): """Option title""" prices: List[LabeledPrice] """List of price portions""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + id: str, + title: str, + prices: List[LabeledPrice], + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(id=id, title=title, prices=prices, **__pydantic_kwargs) diff --git a/aiogram/types/shipping_query.py b/aiogram/types/shipping_query.py index df00e38d..8f3cd88d 100644 --- a/aiogram/types/shipping_query.py +++ b/aiogram/types/shipping_query.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Any, List, Optional from pydantic import Field @@ -29,23 +29,62 @@ class ShippingQuery(TelegramObject): shipping_address: ShippingAddress """User specified shipping address""" + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + id: str, + from_user: User, + invoice_payload: str, + shipping_address: ShippingAddress, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + id=id, + from_user=from_user, + invoice_payload=invoice_payload, + shipping_address=shipping_address, + **__pydantic_kwargs, + ) + def answer( self, ok: bool, shipping_options: Optional[List[ShippingOption]] = None, error_message: Optional[str] = None, + **kwargs: Any, ) -> AnswerShippingQuery: """ - :param ok: - :param shipping_options: - :param error_message: - :return: + Shortcut for method :class:`aiogram.methods.answer_shipping_query.AnswerShippingQuery` + will automatically fill method attributes: + + - :code:`shipping_query_id` + + If you sent an invoice requesting a shipping address and the parameter *is_flexible* was specified, the Bot API will send an :class:`aiogram.types.update.Update` with a *shipping_query* field to the bot. Use this method to reply to shipping queries. On success, :code:`True` is returned. + + Source: https://core.telegram.org/bots/api#answershippingquery + + :param ok: Pass :code:`True` if delivery to the specified address is possible and :code:`False` if there are any problems (for example, if delivery to the specified address is not possible) + :param shipping_options: Required if *ok* is :code:`True`. A JSON-serialized array of available shipping options. + :param error_message: Required if *ok* is :code:`False`. Error message in human readable form that explains why it is impossible to complete the order (e.g. "Sorry, delivery to your desired address is unavailable'). Telegram will display this message to the user. + :return: instance of method :class:`aiogram.methods.answer_shipping_query.AnswerShippingQuery` """ - from ..methods import AnswerShippingQuery + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + + from aiogram.methods import AnswerShippingQuery return AnswerShippingQuery( shipping_query_id=self.id, ok=ok, shipping_options=shipping_options, error_message=error_message, - ) + **kwargs, + ).as_(self._bot) diff --git a/aiogram/types/sticker.py b/aiogram/types/sticker.py index 1bac276f..4c1b8646 100644 --- a/aiogram/types/sticker.py +++ b/aiogram/types/sticker.py @@ -49,6 +49,53 @@ class Sticker(TelegramObject): file_size: Optional[int] = None """*Optional*. File size in bytes""" + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + file_id: str, + file_unique_id: str, + type: str, + width: int, + height: int, + is_animated: bool, + is_video: bool, + thumbnail: Optional[PhotoSize] = None, + emoji: Optional[str] = None, + set_name: Optional[str] = None, + premium_animation: Optional[File] = None, + mask_position: Optional[MaskPosition] = None, + custom_emoji_id: Optional[str] = None, + needs_repainting: Optional[bool] = None, + file_size: Optional[int] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + file_id=file_id, + file_unique_id=file_unique_id, + type=type, + width=width, + height=height, + is_animated=is_animated, + is_video=is_video, + thumbnail=thumbnail, + emoji=emoji, + set_name=set_name, + premium_animation=premium_animation, + mask_position=mask_position, + custom_emoji_id=custom_emoji_id, + needs_repainting=needs_repainting, + file_size=file_size, + **__pydantic_kwargs, + ) + def set_position_in_set( self, position: int, @@ -76,7 +123,7 @@ class Sticker(TelegramObject): sticker=self.file_id, position=position, **kwargs, - ) + ).as_(self._bot) def delete_from_set( self, @@ -102,4 +149,4 @@ class Sticker(TelegramObject): return DeleteStickerFromSet( sticker=self.file_id, **kwargs, - ) + ).as_(self._bot) diff --git a/aiogram/types/sticker_set.py b/aiogram/types/sticker_set.py index d212acd0..81747747 100644 --- a/aiogram/types/sticker_set.py +++ b/aiogram/types/sticker_set.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Any, List, Optional from .base import TelegramObject @@ -30,3 +30,34 @@ class StickerSet(TelegramObject): """List of all set stickers""" thumbnail: Optional[PhotoSize] = None """*Optional*. Sticker set thumbnail in the .WEBP, .TGS, or .WEBM format""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + name: str, + title: str, + sticker_type: str, + is_animated: bool, + is_video: bool, + stickers: List[Sticker], + thumbnail: Optional[PhotoSize] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + name=name, + title=title, + sticker_type=sticker_type, + is_animated=is_animated, + is_video=is_video, + stickers=stickers, + thumbnail=thumbnail, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/story.py b/aiogram/types/story.py new file mode 100644 index 00000000..dc92c575 --- /dev/null +++ b/aiogram/types/story.py @@ -0,0 +1,9 @@ +from aiogram.types import TelegramObject + + +class Story(TelegramObject): + """ + This object represents a message about a forwarded story in the chat. Currently holds no information. + + Source: https://core.telegram.org/bots/api#story + """ diff --git a/aiogram/types/successful_payment.py b/aiogram/types/successful_payment.py index d8b0e90c..97dcefe5 100644 --- a/aiogram/types/successful_payment.py +++ b/aiogram/types/successful_payment.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramObject @@ -29,3 +29,34 @@ class SuccessfulPayment(TelegramObject): """*Optional*. Identifier of the shipping option chosen by the user""" order_info: Optional[OrderInfo] = None """*Optional*. Order information provided by the user""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + currency: str, + total_amount: int, + invoice_payload: str, + telegram_payment_charge_id: str, + provider_payment_charge_id: str, + shipping_option_id: Optional[str] = None, + order_info: Optional[OrderInfo] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + currency=currency, + total_amount=total_amount, + invoice_payload=invoice_payload, + telegram_payment_charge_id=telegram_payment_charge_id, + provider_payment_charge_id=provider_payment_charge_id, + shipping_option_id=shipping_option_id, + order_info=order_info, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/switch_inline_query_chosen_chat.py b/aiogram/types/switch_inline_query_chosen_chat.py index f0a2e84f..9a25dca5 100644 --- a/aiogram/types/switch_inline_query_chosen_chat.py +++ b/aiogram/types/switch_inline_query_chosen_chat.py @@ -1,4 +1,4 @@ -from typing import Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramObject @@ -20,3 +20,30 @@ class SwitchInlineQueryChosenChat(TelegramObject): """*Optional*. True, if group and supergroup chats can be chosen""" allow_channel_chats: Optional[bool] = None """*Optional*. True, if channel chats can be chosen""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + query: Optional[str] = None, + allow_user_chats: Optional[bool] = None, + allow_bot_chats: Optional[bool] = None, + allow_group_chats: Optional[bool] = None, + allow_channel_chats: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + query=query, + allow_user_chats=allow_user_chats, + allow_bot_chats=allow_bot_chats, + allow_group_chats=allow_group_chats, + allow_channel_chats=allow_channel_chats, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/update.py b/aiogram/types/update.py index 9f9eb413..aed68270 100644 --- a/aiogram/types/update.py +++ b/aiogram/types/update.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, cast +from typing import TYPE_CHECKING, Any, Optional, cast from ..utils.mypy_hacks import lru_cache from .base import TelegramObject @@ -54,10 +54,57 @@ class Update(TelegramObject): my_chat_member: Optional[ChatMemberUpdated] = None """*Optional*. The bot's chat member status was updated in a chat. For private chats, this update is received only when the bot is blocked or unblocked by the user.""" chat_member: Optional[ChatMemberUpdated] = None - """*Optional*. A chat member's status was updated in a chat. The bot must be an administrator in the chat and must explicitly specify 'chat_member' in the list of *allowed_updates* to receive these updates.""" + """*Optional*. A chat member's status was updated in a chat. The bot must be an administrator in the chat and must explicitly specify :code:`"chat_member"` in the list of *allowed_updates* to receive these updates.""" chat_join_request: Optional[ChatJoinRequest] = None """*Optional*. A request to join the chat has been sent. The bot must have the *can_invite_users* administrator right in the chat to receive these updates.""" + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + update_id: int, + message: Optional[Message] = None, + edited_message: Optional[Message] = None, + channel_post: Optional[Message] = None, + edited_channel_post: Optional[Message] = None, + inline_query: Optional[InlineQuery] = None, + chosen_inline_result: Optional[ChosenInlineResult] = None, + callback_query: Optional[CallbackQuery] = None, + shipping_query: Optional[ShippingQuery] = None, + pre_checkout_query: Optional[PreCheckoutQuery] = None, + poll: Optional[Poll] = None, + poll_answer: Optional[PollAnswer] = None, + my_chat_member: Optional[ChatMemberUpdated] = None, + chat_member: Optional[ChatMemberUpdated] = None, + chat_join_request: Optional[ChatJoinRequest] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + update_id=update_id, + message=message, + edited_message=edited_message, + channel_post=channel_post, + edited_channel_post=edited_channel_post, + inline_query=inline_query, + chosen_inline_result=chosen_inline_result, + callback_query=callback_query, + shipping_query=shipping_query, + pre_checkout_query=pre_checkout_query, + poll=poll, + poll_answer=poll_answer, + my_chat_member=my_chat_member, + chat_member=chat_member, + chat_join_request=chat_join_request, + **__pydantic_kwargs, + ) + def __hash__(self) -> int: return hash((type(self), self.update_id)) diff --git a/aiogram/types/user.py b/aiogram/types/user.py index 3b71af19..571447cd 100644 --- a/aiogram/types/user.py +++ b/aiogram/types/user.py @@ -40,6 +40,45 @@ class User(TelegramObject): supports_inline_queries: Optional[bool] = None """*Optional*. :code:`True`, if the bot supports inline queries. Returned only in :class:`aiogram.methods.get_me.GetMe`.""" + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + id: int, + is_bot: bool, + first_name: str, + last_name: Optional[str] = None, + username: Optional[str] = None, + language_code: Optional[str] = None, + is_premium: Optional[bool] = None, + added_to_attachment_menu: Optional[bool] = None, + can_join_groups: Optional[bool] = None, + can_read_all_group_messages: Optional[bool] = None, + supports_inline_queries: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + id=id, + is_bot=is_bot, + first_name=first_name, + last_name=last_name, + username=username, + language_code=language_code, + is_premium=is_premium, + added_to_attachment_menu=added_to_attachment_menu, + can_join_groups=can_join_groups, + can_read_all_group_messages=can_read_all_group_messages, + supports_inline_queries=supports_inline_queries, + **__pydantic_kwargs, + ) + @property def full_name(self) -> str: if self.last_name: @@ -90,4 +129,4 @@ class User(TelegramObject): offset=offset, limit=limit, **kwargs, - ) + ).as_(self._bot) diff --git a/aiogram/types/user_profile_photos.py b/aiogram/types/user_profile_photos.py index ad1197bf..c1c5d28d 100644 --- a/aiogram/types/user_profile_photos.py +++ b/aiogram/types/user_profile_photos.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List +from typing import TYPE_CHECKING, Any, List from .base import TelegramObject @@ -19,3 +19,20 @@ class UserProfilePhotos(TelegramObject): """Total number of profile pictures the target user has""" photos: List[List[PhotoSize]] """Requested profile pictures (in up to 4 sizes each)""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + total_count: int, + photos: List[List[PhotoSize]], + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(total_count=total_count, photos=photos, **__pydantic_kwargs) diff --git a/aiogram/types/user_shared.py b/aiogram/types/user_shared.py index f9bf4fbb..65305679 100644 --- a/aiogram/types/user_shared.py +++ b/aiogram/types/user_shared.py @@ -1,3 +1,5 @@ +from typing import TYPE_CHECKING, Any + from aiogram.types import TelegramObject @@ -12,3 +14,16 @@ class UserShared(TelegramObject): """Identifier of the request""" user_id: int """Identifier of the shared user. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot may not have access to the user and could be unable to use this identifier, unless the user is already known to the bot by some other means.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, request_id: int, user_id: int, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(request_id=request_id, user_id=user_id, **__pydantic_kwargs) diff --git a/aiogram/types/venue.py b/aiogram/types/venue.py index 49caceff..e0a3f848 100644 --- a/aiogram/types/venue.py +++ b/aiogram/types/venue.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramObject @@ -29,3 +29,34 @@ class Venue(TelegramObject): """*Optional*. Google Places identifier of the venue""" google_place_type: Optional[str] = None """*Optional*. Google Places type of the venue. (See `supported types `_.)""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + location: Location, + title: str, + address: str, + foursquare_id: Optional[str] = None, + foursquare_type: Optional[str] = None, + google_place_id: Optional[str] = None, + google_place_type: Optional[str] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + location=location, + title=title, + address=address, + foursquare_id=foursquare_id, + foursquare_type=foursquare_type, + google_place_id=google_place_id, + google_place_type=google_place_type, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/video.py b/aiogram/types/video.py index ca43493a..e9936091 100644 --- a/aiogram/types/video.py +++ b/aiogram/types/video.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramObject @@ -33,3 +33,38 @@ class Video(TelegramObject): """*Optional*. MIME type of the file as defined by sender""" file_size: Optional[int] = None """*Optional*. File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + file_id: str, + file_unique_id: str, + width: int, + height: int, + duration: int, + thumbnail: Optional[PhotoSize] = None, + file_name: Optional[str] = None, + mime_type: Optional[str] = None, + file_size: Optional[int] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + file_id=file_id, + file_unique_id=file_unique_id, + width=width, + height=height, + duration=duration, + thumbnail=thumbnail, + file_name=file_name, + mime_type=mime_type, + file_size=file_size, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/video_chat_ended.py b/aiogram/types/video_chat_ended.py index d890a153..289eb722 100644 --- a/aiogram/types/video_chat_ended.py +++ b/aiogram/types/video_chat_ended.py @@ -1,5 +1,7 @@ from __future__ import annotations +from typing import TYPE_CHECKING, Any + from .base import TelegramObject @@ -12,3 +14,14 @@ class VideoChatEnded(TelegramObject): duration: int """Video chat duration in seconds""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__(__pydantic__self__, *, duration: int, **__pydantic_kwargs: Any) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(duration=duration, **__pydantic_kwargs) diff --git a/aiogram/types/video_chat_participants_invited.py b/aiogram/types/video_chat_participants_invited.py index 3361f8ee..74e1a357 100644 --- a/aiogram/types/video_chat_participants_invited.py +++ b/aiogram/types/video_chat_participants_invited.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List +from typing import TYPE_CHECKING, Any, List from .base import TelegramObject @@ -17,3 +17,14 @@ class VideoChatParticipantsInvited(TelegramObject): users: List[User] """New members that were invited to the video chat""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__(__pydantic__self__, *, users: List[User], **__pydantic_kwargs: Any) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(users=users, **__pydantic_kwargs) diff --git a/aiogram/types/video_chat_scheduled.py b/aiogram/types/video_chat_scheduled.py index 508b1ce3..c82e4953 100644 --- a/aiogram/types/video_chat_scheduled.py +++ b/aiogram/types/video_chat_scheduled.py @@ -1,8 +1,9 @@ from __future__ import annotations -import datetime +from typing import TYPE_CHECKING, Any from .base import TelegramObject +from .custom import DateTime class VideoChatScheduled(TelegramObject): @@ -12,5 +13,18 @@ class VideoChatScheduled(TelegramObject): Source: https://core.telegram.org/bots/api#videochatscheduled """ - start_date: datetime.datetime + start_date: DateTime """Point in time (Unix timestamp) when the video chat is supposed to be started by a chat administrator""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, start_date: DateTime, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(start_date=start_date, **__pydantic_kwargs) diff --git a/aiogram/types/video_note.py b/aiogram/types/video_note.py index 03654824..4caa1170 100644 --- a/aiogram/types/video_note.py +++ b/aiogram/types/video_note.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramObject @@ -27,3 +27,32 @@ class VideoNote(TelegramObject): """*Optional*. Video thumbnail""" file_size: Optional[int] = None """*Optional*. File size in bytes""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + file_id: str, + file_unique_id: str, + length: int, + duration: int, + thumbnail: Optional[PhotoSize] = None, + file_size: Optional[int] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + file_id=file_id, + file_unique_id=file_unique_id, + length=length, + duration=duration, + thumbnail=thumbnail, + file_size=file_size, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/voice.py b/aiogram/types/voice.py index 53724ad0..d16729c9 100644 --- a/aiogram/types/voice.py +++ b/aiogram/types/voice.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import Optional +from typing import TYPE_CHECKING, Any, Optional from .base import TelegramObject @@ -22,3 +22,30 @@ class Voice(TelegramObject): """*Optional*. MIME type of the file as defined by sender""" file_size: Optional[int] = None """*Optional*. File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + file_id: str, + file_unique_id: str, + duration: int, + mime_type: Optional[str] = None, + file_size: Optional[int] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + file_id=file_id, + file_unique_id=file_unique_id, + duration=duration, + mime_type=mime_type, + file_size=file_size, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/web_app_data.py b/aiogram/types/web_app_data.py index 09676292..8fac379f 100644 --- a/aiogram/types/web_app_data.py +++ b/aiogram/types/web_app_data.py @@ -1,5 +1,7 @@ from __future__ import annotations +from typing import TYPE_CHECKING, Any + from .base import TelegramObject @@ -14,3 +16,16 @@ class WebAppData(TelegramObject): """The data. Be aware that a bad client can send arbitrary data in this field.""" button_text: str """Text of the *web_app* keyboard button from which the Web App was opened. Be aware that a bad client can send arbitrary data in this field.""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, *, data: str, button_text: str, **__pydantic_kwargs: Any + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(data=data, button_text=button_text, **__pydantic_kwargs) diff --git a/aiogram/types/web_app_info.py b/aiogram/types/web_app_info.py index b315846e..fbf9846e 100644 --- a/aiogram/types/web_app_info.py +++ b/aiogram/types/web_app_info.py @@ -1,5 +1,7 @@ from __future__ import annotations +from typing import TYPE_CHECKING, Any + from .base import TelegramObject @@ -11,4 +13,15 @@ class WebAppInfo(TelegramObject): """ url: str - """An HTTPS URL of a Web App to be opened with additional data as specified in `Initializing Web Apps `_""" + """An HTTPS URL of a Web App to be opened with additional data as specified in `Initializing Web Apps `_""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__(__pydantic__self__, *, url: str, **__pydantic_kwargs: Any) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__(url=url, **__pydantic_kwargs) diff --git a/aiogram/types/webhook_info.py b/aiogram/types/webhook_info.py index e08df0d6..1753df41 100644 --- a/aiogram/types/webhook_info.py +++ b/aiogram/types/webhook_info.py @@ -1,9 +1,9 @@ from __future__ import annotations -import datetime -from typing import List, Optional +from typing import TYPE_CHECKING, Any, List, Optional from .base import TelegramObject +from .custom import DateTime class WebhookInfo(TelegramObject): @@ -21,13 +21,48 @@ class WebhookInfo(TelegramObject): """Number of updates awaiting delivery""" ip_address: Optional[str] = None """*Optional*. Currently used webhook IP address""" - last_error_date: Optional[datetime.datetime] = None + last_error_date: Optional[DateTime] = None """*Optional*. Unix time for the most recent error that happened when trying to deliver an update via webhook""" last_error_message: Optional[str] = None """*Optional*. Error message in human-readable format for the most recent error that happened when trying to deliver an update via webhook""" - last_synchronization_error_date: Optional[datetime.datetime] = None + last_synchronization_error_date: Optional[DateTime] = None """*Optional*. Unix time of the most recent error that happened when trying to synchronize available updates with Telegram datacenters""" max_connections: Optional[int] = None """*Optional*. The maximum allowed number of simultaneous HTTPS connections to the webhook for update delivery""" allowed_updates: Optional[List[str]] = None """*Optional*. A list of update types the bot is subscribed to. Defaults to all update types except *chat_member*""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + url: str, + has_custom_certificate: bool, + pending_update_count: int, + ip_address: Optional[str] = None, + last_error_date: Optional[DateTime] = None, + last_error_message: Optional[str] = None, + last_synchronization_error_date: Optional[DateTime] = None, + max_connections: Optional[int] = None, + allowed_updates: Optional[List[str]] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + url=url, + has_custom_certificate=has_custom_certificate, + pending_update_count=pending_update_count, + ip_address=ip_address, + last_error_date=last_error_date, + last_error_message=last_error_message, + last_synchronization_error_date=last_synchronization_error_date, + max_connections=max_connections, + allowed_updates=allowed_updates, + **__pydantic_kwargs, + ) diff --git a/aiogram/types/write_access_allowed.py b/aiogram/types/write_access_allowed.py index 32924410..6b8e50a0 100644 --- a/aiogram/types/write_access_allowed.py +++ b/aiogram/types/write_access_allowed.py @@ -1,14 +1,41 @@ -from typing import Optional +from typing import TYPE_CHECKING, Any, Optional from aiogram.types import TelegramObject class WriteAccessAllowed(TelegramObject): """ - This object represents a service message about a user allowing a bot to write messages after adding the bot to the attachment menu or launching a Web App from a link. + This object represents a service message about a user allowing a bot to write messages after adding it to the attachment menu, launching a Web App from a link, or accepting an explicit request from a Web App sent by the method `requestWriteAccess `_. Source: https://core.telegram.org/bots/api#writeaccessallowed """ + from_request: Optional[bool] = None + """*Optional*. True, if the access was granted after the user accepted an explicit request from a Web App sent by the method `requestWriteAccess `_""" web_app_name: Optional[str] = None - """*Optional*. Name of the Web App which was launched from a link""" + """*Optional*. Name of the Web App, if the access was granted when the Web App was launched from a link""" + from_attachment_menu: Optional[bool] = None + """*Optional*. True, if the access was granted when the bot was added to the attachment or side menu""" + + if TYPE_CHECKING: + # DO NOT EDIT MANUALLY!!! + # This section was auto-generated via `butcher` + + def __init__( + __pydantic__self__, + *, + from_request: Optional[bool] = None, + web_app_name: Optional[str] = None, + from_attachment_menu: Optional[bool] = None, + **__pydantic_kwargs: Any, + ) -> None: + # DO NOT EDIT MANUALLY!!! + # This method was auto-generated via `butcher` + # Is needed only for type checking and IDE support without any additional plugins + + super().__init__( + from_request=from_request, + web_app_name=web_app_name, + from_attachment_menu=from_attachment_menu, + **__pydantic_kwargs, + ) diff --git a/aiogram/utils/chat_action.py b/aiogram/utils/chat_action.py index b6bda916..4d5fb567 100644 --- a/aiogram/utils/chat_action.py +++ b/aiogram/utils/chat_action.py @@ -31,23 +31,22 @@ class ChatActionSender: def __init__( self, *, + bot: Bot, chat_id: Union[str, int], + message_thread_id: Optional[int] = None, action: str = "typing", interval: float = DEFAULT_INTERVAL, initial_sleep: float = DEFAULT_INITIAL_SLEEP, - bot: Optional[Bot] = None, ) -> None: """ + :param bot: instance of the bot :param chat_id: target chat id :param action: chat action type :param interval: interval between iterations - :param initial_sleep: sleep before first iteration - :param bot: instance of the bot, can be omitted from the context + :param initial_sleep: sleep before first sending of the action """ - if bot is None: - bot = Bot.get_current(False) - self.chat_id = chat_id + self.message_thread_id = message_thread_id self.action = action self.interval = interval self.initial_sleep = initial_sleep @@ -85,7 +84,11 @@ class ChatActionSender: self.bot.id, counter, ) - await self.bot.send_chat_action(chat_id=self.chat_id, action=self.action) + await self.bot.send_chat_action( + chat_id=self.chat_id, + action=self.action, + message_thread_id=self.message_thread_id, + ) counter += 1 interval = self.interval - (time.monotonic() - start) @@ -132,7 +135,7 @@ class ChatActionSender: def typing( cls, chat_id: Union[int, str], - bot: Optional[Bot] = None, + bot: Bot, interval: float = DEFAULT_INTERVAL, initial_sleep: float = DEFAULT_INITIAL_SLEEP, ) -> "ChatActionSender": @@ -149,7 +152,7 @@ class ChatActionSender: def upload_photo( cls, chat_id: Union[int, str], - bot: Optional[Bot] = None, + bot: Bot, interval: float = DEFAULT_INTERVAL, initial_sleep: float = DEFAULT_INITIAL_SLEEP, ) -> "ChatActionSender": @@ -166,7 +169,7 @@ class ChatActionSender: def record_video( cls, chat_id: Union[int, str], - bot: Optional[Bot] = None, + bot: Bot, interval: float = DEFAULT_INTERVAL, initial_sleep: float = DEFAULT_INITIAL_SLEEP, ) -> "ChatActionSender": @@ -183,7 +186,7 @@ class ChatActionSender: def upload_video( cls, chat_id: Union[int, str], - bot: Optional[Bot] = None, + bot: Bot, interval: float = DEFAULT_INTERVAL, initial_sleep: float = DEFAULT_INITIAL_SLEEP, ) -> "ChatActionSender": @@ -200,7 +203,7 @@ class ChatActionSender: def record_voice( cls, chat_id: Union[int, str], - bot: Optional[Bot] = None, + bot: Bot, interval: float = DEFAULT_INTERVAL, initial_sleep: float = DEFAULT_INITIAL_SLEEP, ) -> "ChatActionSender": @@ -217,7 +220,7 @@ class ChatActionSender: def upload_voice( cls, chat_id: Union[int, str], - bot: Optional[Bot] = None, + bot: Bot, interval: float = DEFAULT_INTERVAL, initial_sleep: float = DEFAULT_INITIAL_SLEEP, ) -> "ChatActionSender": @@ -234,7 +237,7 @@ class ChatActionSender: def upload_document( cls, chat_id: Union[int, str], - bot: Optional[Bot] = None, + bot: Bot, interval: float = DEFAULT_INTERVAL, initial_sleep: float = DEFAULT_INITIAL_SLEEP, ) -> "ChatActionSender": @@ -251,7 +254,7 @@ class ChatActionSender: def choose_sticker( cls, chat_id: Union[int, str], - bot: Optional[Bot] = None, + bot: Bot, interval: float = DEFAULT_INTERVAL, initial_sleep: float = DEFAULT_INITIAL_SLEEP, ) -> "ChatActionSender": @@ -268,7 +271,7 @@ class ChatActionSender: def find_location( cls, chat_id: Union[int, str], - bot: Optional[Bot] = None, + bot: Bot, interval: float = DEFAULT_INTERVAL, initial_sleep: float = DEFAULT_INITIAL_SLEEP, ) -> "ChatActionSender": @@ -285,7 +288,7 @@ class ChatActionSender: def record_video_note( cls, chat_id: Union[int, str], - bot: Optional[Bot] = None, + bot: Bot, interval: float = DEFAULT_INTERVAL, initial_sleep: float = DEFAULT_INITIAL_SLEEP, ) -> "ChatActionSender": @@ -302,7 +305,7 @@ class ChatActionSender: def upload_video_note( cls, chat_id: Union[int, str], - bot: Optional[Bot] = None, + bot: Bot, interval: float = DEFAULT_INTERVAL, initial_sleep: float = DEFAULT_INITIAL_SLEEP, ) -> "ChatActionSender": @@ -344,5 +347,10 @@ class ChatActionMiddleware(BaseMiddleware): kwargs["action"] = "typing" else: kwargs["action"] = chat_action + kwargs["message_thread_id"] = ( + event.message_thread_id + if isinstance(event, Message) and event.is_topic_message + else None + ) async with ChatActionSender(bot=bot, chat_id=event.chat.id, **kwargs): return await handler(event, data) diff --git a/aiogram/utils/deep_linking.py b/aiogram/utils/deep_linking.py index 3d27633f..bfd62a16 100644 --- a/aiogram/utils/deep_linking.py +++ b/aiogram/utils/deep_linking.py @@ -16,7 +16,7 @@ Basic link example: .. code-block:: python from aiogram.utils.deep_linking import create_start_link - + link = await create_start_link(bot, 'foo') # result: 'https://t.me/MyBot?start=foo' @@ -46,19 +46,33 @@ Decode it back example: """ from __future__ import annotations +__all__ = [ + "create_start_link", + "create_startgroup_link", + "create_deep_link", + "create_telegram_link", + "encode_payload", + "decode_payload", +] + import re -from base64 import urlsafe_b64decode, urlsafe_b64encode -from typing import TYPE_CHECKING, Literal, cast +from typing import TYPE_CHECKING, Callable, Literal, Optional, cast from aiogram.utils.link import create_telegram_link +from aiogram.utils.payload import decode_payload, encode_payload if TYPE_CHECKING: from aiogram import Bot -BAD_PATTERN = re.compile(r"[^_A-z0-9-]") +BAD_PATTERN = re.compile(r"[^A-z0-9-]") -async def create_start_link(bot: Bot, payload: str, encode: bool = False) -> str: +async def create_start_link( + bot: Bot, + payload: str, + encode: bool = False, + encoder: Optional[Callable[[bytes], bytes]] = None, +) -> str: """ Create 'start' deep link with your payload. @@ -67,16 +81,26 @@ async def create_start_link(bot: Bot, payload: str, encode: bool = False) -> str :param bot: bot instance :param payload: args passed with /start - :param encode: encode payload with base64url + :param encode: encode payload with base64url or custom encoder + :param encoder: custom encoder callable :return: link """ username = (await bot.me()).username return create_deep_link( - username=cast(str, username), link_type="start", payload=payload, encode=encode + username=cast(str, username), + link_type="start", + payload=payload, + encode=encode, + encoder=encoder, ) -async def create_startgroup_link(bot: Bot, payload: str, encode: bool = False) -> str: +async def create_startgroup_link( + bot: Bot, + payload: str, + encode: bool = False, + encoder: Optional[Callable[[bytes], bytes]] = None, +) -> str: """ Create 'startgroup' deep link with your payload. @@ -85,17 +109,26 @@ async def create_startgroup_link(bot: Bot, payload: str, encode: bool = False) - :param bot: bot instance :param payload: args passed with /start - :param encode: encode payload with base64url + :param encode: encode payload with base64url or custom encoder + :param encoder: custom encoder callable :return: link """ username = (await bot.me()).username return create_deep_link( - username=cast(str, username), link_type="startgroup", payload=payload, encode=encode + username=cast(str, username), + link_type="startgroup", + payload=payload, + encode=encode, + encoder=encoder, ) def create_deep_link( - username: str, link_type: Literal["start", "startgroup"], payload: str, encode: bool = False + username: str, + link_type: Literal["start", "startgroup"], + payload: str, + encode: bool = False, + encoder: Optional[Callable[[bytes], bytes]] = None, ) -> str: """ Create deep link. @@ -103,14 +136,15 @@ def create_deep_link( :param username: :param link_type: `start` or `startgroup` :param payload: any string-convertible data - :param encode: pass True to encode the payload + :param encode: encode payload with base64url or custom encoder + :param encoder: custom encoder callable :return: deeplink """ if not isinstance(payload, str): payload = str(payload) - if encode: - payload = encode_payload(payload) + if encode or encoder: + payload = encode_payload(payload, encoder=encoder) if re.search(BAD_PATTERN, payload): raise ValueError( @@ -122,18 +156,3 @@ def create_deep_link( raise ValueError("Payload must be up to 64 characters long.") return create_telegram_link(username, **{cast(str, link_type): payload}) - - -def encode_payload(payload: str) -> str: - """Encode payload with URL-safe base64url.""" - payload = str(payload) - bytes_payload: bytes = urlsafe_b64encode(payload.encode()) - str_payload = bytes_payload.decode() - return str_payload.replace("=", "") - - -def decode_payload(payload: str) -> str: - """Decode payload with URL-safe base64url.""" - payload += "=" * (4 - len(payload) % 4) - result: bytes = urlsafe_b64decode(payload) - return result.decode() diff --git a/aiogram/utils/formatting.py b/aiogram/utils/formatting.py new file mode 100644 index 00000000..2379418a --- /dev/null +++ b/aiogram/utils/formatting.py @@ -0,0 +1,607 @@ +import textwrap +from typing import ( + Any, + ClassVar, + Dict, + Generator, + Iterable, + Iterator, + List, + Optional, + Tuple, + Type, +) + +from typing_extensions import Self + +from aiogram.enums import MessageEntityType +from aiogram.types import MessageEntity, User +from aiogram.utils.text_decorations import ( + add_surrogates, + html_decoration, + markdown_decoration, + remove_surrogates, +) + +NodeType = Any + + +def sizeof(value: str) -> int: + return len(value.encode("utf-16-le")) // 2 + + +class Text(Iterable[NodeType]): + """ + Simple text element + """ + + type: ClassVar[Optional[str]] = None + + __slots__ = ("_body", "_params") + + def __init__( + self, + *body: NodeType, + **params: Any, + ) -> None: + self._body: Tuple[NodeType, ...] = body + self._params: Dict[str, Any] = params + + @classmethod + def from_entities(cls, text: str, entities: List[MessageEntity]) -> "Text": + return cls( + *_unparse_entities( + text=add_surrogates(text), + entities=sorted(entities, key=lambda item: item.offset) if entities else [], + ) + ) + + def render( + self, + *, + _offset: int = 0, + _sort: bool = True, + _collect_entities: bool = True, + ) -> Tuple[str, List[MessageEntity]]: + """ + Render elements tree as text with entities list + + :return: + """ + + text = "" + entities = [] + offset = _offset + + for node in self._body: + if not isinstance(node, Text): + node = str(node) + text += node + offset += sizeof(node) + else: + node_text, node_entities = node.render( + _offset=offset, + _sort=False, + _collect_entities=_collect_entities, + ) + text += node_text + offset += sizeof(node_text) + if _collect_entities: + entities.extend(node_entities) + + if _collect_entities and self.type: + entities.append(self._render_entity(offset=_offset, length=offset - _offset)) + + if _collect_entities and _sort: + entities.sort(key=lambda entity: entity.offset) + + return text, entities + + def _render_entity(self, *, offset: int, length: int) -> MessageEntity: + assert self.type is not None, "Node without type can't be rendered as entity" + return MessageEntity(type=self.type, offset=offset, length=length, **self._params) + + def as_kwargs( + self, + *, + text_key: str = "text", + entities_key: str = "entities", + replace_parse_mode: bool = True, + parse_mode_key: str = "parse_mode", + ) -> Dict[str, Any]: + """ + Render elements tree as keyword arguments for usage in the API call, for example: + + .. code-block:: python + + entities = Text(...) + await message.answer(**entities.as_kwargs()) + + :param text_key: + :param entities_key: + :param replace_parse_mode: + :param parse_mode_key: + :return: + """ + text_value, entities_value = self.render() + result: Dict[str, Any] = { + text_key: text_value, + entities_key: entities_value, + } + if replace_parse_mode: + result[parse_mode_key] = None + return result + + def as_html(self) -> str: + """ + Render elements tree as HTML markup + """ + text, entities = self.render() + return html_decoration.unparse(text, entities) + + def as_markdown(self) -> str: + """ + Render elements tree as MarkdownV2 markup + """ + text, entities = self.render() + return markdown_decoration.unparse(text, entities) + + def replace(self: Self, *args: Any, **kwargs: Any) -> Self: + return type(self)(*args, **{**self._params, **kwargs}) + + def as_pretty_string(self, indent: bool = False) -> str: + sep = ",\n" if indent else ", " + body = sep.join( + item.as_pretty_string(indent=indent) if isinstance(item, Text) else repr(item) + for item in self._body + ) + params = sep.join(f"{k}={v!r}" for k, v in self._params.items() if v is not None) + + args = [] + if body: + args.append(body) + if params: + args.append(params) + + args_str = sep.join(args) + if indent: + args_str = textwrap.indent("\n" + args_str + "\n", " ") + return f"{type(self).__name__}({args_str})" + + def __add__(self, other: NodeType) -> "Text": + if isinstance(other, Text) and other.type == self.type and self._params == other._params: + return type(self)(*self, *other, **self._params) + if type(self) == Text and isinstance(other, str): + return type(self)(*self, other, **self._params) + return Text(self, other) + + def __iter__(self) -> Iterator[NodeType]: + yield from self._body + + def __len__(self) -> int: + text, _ = self.render(_collect_entities=False) + return sizeof(text) + + def __getitem__(self, item: slice) -> "Text": + if not isinstance(item, slice): + raise TypeError("Can only be sliced") + if (item.start is None or item.start == 0) and item.stop is None: + return self.replace(*self._body) + start = 0 if item.start is None else item.start + stop = len(self) if item.stop is None else item.stop + if start == stop: + return self.replace() + + nodes = [] + position = 0 + + for node in self._body: + node_size = len(node) + current_position = position + position += node_size + if position < start: + continue + if current_position > stop: + break + a = max((0, start - current_position)) + b = min((node_size, stop - current_position)) + new_node = node[a:b] + if not new_node: + continue + nodes.append(new_node) + + return self.replace(*nodes) + + +class HashTag(Text): + """ + Hashtag element. + + .. warning:: + + The value should always start with '#' symbol + + Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` + with type :obj:`aiogram.enums.message_entity_type.MessageEntityType.HASHTAG` + """ + + type = MessageEntityType.HASHTAG + + def __init__(self, *body: NodeType, **params: Any) -> None: + if len(body) != 1: + raise ValueError("Hashtag can contain only one element") + if not isinstance(body[0], str): + raise ValueError("Hashtag can contain only string") + if not body[0].startswith("#"): + body = ("#" + body[0],) + super().__init__(*body, **params) + + +class CashTag(Text): + """ + Cashtag element. + + .. warning:: + + The value should always start with '$' symbol + + Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` + with type :obj:`aiogram.enums.message_entity_type.MessageEntityType.CASHTAG` + """ + + type = MessageEntityType.CASHTAG + + def __init__(self, *body: NodeType, **params: Any) -> None: + if len(body) != 1: + raise ValueError("Cashtag can contain only one element") + if not isinstance(body[0], str): + raise ValueError("Cashtag can contain only string") + if not body[0].startswith("$"): + body = ("$" + body[0],) + super().__init__(*body, **params) + + +class BotCommand(Text): + """ + Bot command element. + + .. warning:: + + The value should always start with '/' symbol + + Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` + with type :obj:`aiogram.enums.message_entity_type.MessageEntityType.BOT_COMMAND` + """ + + type = MessageEntityType.BOT_COMMAND + + +class Url(Text): + """ + Url element. + + Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` + with type :obj:`aiogram.enums.message_entity_type.MessageEntityType.URL` + """ + + type = MessageEntityType.URL + + +class Email(Text): + """ + Email element. + + Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` + with type :obj:`aiogram.enums.message_entity_type.MessageEntityType.EMAIL` + """ + + type = MessageEntityType.EMAIL + + +class PhoneNumber(Text): + """ + Phone number element. + + Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` + with type :obj:`aiogram.enums.message_entity_type.MessageEntityType.PHONE_NUMBER` + """ + + type = MessageEntityType.PHONE_NUMBER + + +class Bold(Text): + """ + Bold element. + + Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` + with type :obj:`aiogram.enums.message_entity_type.MessageEntityType.BOLD` + """ + + type = MessageEntityType.BOLD + + +class Italic(Text): + """ + Italic element. + + Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` + with type :obj:`aiogram.enums.message_entity_type.MessageEntityType.ITALIC` + """ + + type = MessageEntityType.ITALIC + + +class Underline(Text): + """ + Underline element. + + Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` + with type :obj:`aiogram.enums.message_entity_type.MessageEntityType.UNDERLINE` + """ + + type = MessageEntityType.UNDERLINE + + +class Strikethrough(Text): + """ + Strikethrough element. + + Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` + with type :obj:`aiogram.enums.message_entity_type.MessageEntityType.STRIKETHROUGH` + """ + + type = MessageEntityType.STRIKETHROUGH + + +class Spoiler(Text): + """ + Spoiler element. + + Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` + with type :obj:`aiogram.enums.message_entity_type.MessageEntityType.SPOILER` + """ + + type = MessageEntityType.SPOILER + + +class Code(Text): + """ + Code element. + + Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` + with type :obj:`aiogram.enums.message_entity_type.MessageEntityType.CODE` + """ + + type = MessageEntityType.CODE + + +class Pre(Text): + """ + Pre element. + + Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` + with type :obj:`aiogram.enums.message_entity_type.MessageEntityType.PRE` + """ + + type = MessageEntityType.PRE + + def __init__(self, *body: NodeType, language: Optional[str] = None, **params: Any) -> None: + super().__init__(*body, language=language, **params) + + +class TextLink(Text): + """ + Text link element. + + Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` + with type :obj:`aiogram.enums.message_entity_type.MessageEntityType.TEXT_LINK` + """ + + type = MessageEntityType.TEXT_LINK + + def __init__(self, *body: NodeType, url: str, **params: Any) -> None: + super().__init__(*body, url=url, **params) + + +class TextMention(Text): + """ + Text mention element. + + Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` + with type :obj:`aiogram.enums.message_entity_type.MessageEntityType.TEXT_MENTION` + """ + + type = MessageEntityType.TEXT_MENTION + + def __init__(self, *body: NodeType, user: User, **params: Any) -> None: + super().__init__(*body, user=user, **params) + + +class CustomEmoji(Text): + """ + Custom emoji element. + + Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` + with type :obj:`aiogram.enums.message_entity_type.MessageEntityType.CUSTOM_EMOJI` + """ + + type = MessageEntityType.CUSTOM_EMOJI + + def __init__(self, *body: NodeType, custom_emoji_id: str, **params: Any) -> None: + super().__init__(*body, custom_emoji_id=custom_emoji_id, **params) + + +NODE_TYPES: Dict[Optional[str], Type[Text]] = { + Text.type: Text, + HashTag.type: HashTag, + CashTag.type: CashTag, + BotCommand.type: BotCommand, + Url.type: Url, + Email.type: Email, + PhoneNumber.type: PhoneNumber, + Bold.type: Bold, + Italic.type: Italic, + Underline.type: Underline, + Strikethrough.type: Strikethrough, + Spoiler.type: Spoiler, + Code.type: Code, + Pre.type: Pre, + TextLink.type: TextLink, + TextMention.type: TextMention, +} + + +def _apply_entity(entity: MessageEntity, *nodes: NodeType) -> NodeType: + """ + Apply single entity to text + + :param entity: + :param text: + :return: + """ + node_type = NODE_TYPES.get(entity.type, Text) + return node_type( + *nodes, **entity.model_dump(exclude={"type", "offset", "length"}, warnings=False) + ) + + +def _unparse_entities( + text: bytes, + entities: List[MessageEntity], + offset: Optional[int] = None, + length: Optional[int] = None, +) -> Generator[NodeType, None, None]: + if offset is None: + offset = 0 + length = length or len(text) + + for index, entity in enumerate(entities): + if entity.offset * 2 < offset: + continue + if entity.offset * 2 > offset: + yield remove_surrogates(text[offset : entity.offset * 2]) + start = entity.offset * 2 + offset = entity.offset * 2 + entity.length * 2 + + sub_entities = list(filter(lambda e: e.offset * 2 < (offset or 0), entities[index + 1 :])) + yield _apply_entity( + entity, + *_unparse_entities(text, sub_entities, offset=start, length=offset), + ) + + if offset < length: + yield remove_surrogates(text[offset:length]) + + +def as_line(*items: NodeType, end: str = "\n", sep: str = "") -> Text: + """ + Wrap multiple nodes into line with :code:`\\\\n` at the end of line. + + :param items: Text or Any + :param end: ending of the line, by default is :code:`\\\\n` + :param sep: separator between items, by default is empty string + :return: Text + """ + if sep: + nodes = [] + for item in items[:-1]: + nodes.extend([item, sep]) + nodes.append(items[-1]) + nodes.append(end) + else: + nodes = [*items, end] + return Text(*nodes) + + +def as_list(*items: NodeType, sep: str = "\n") -> Text: + """ + Wrap each element to separated lines + + :param items: + :param sep: + :return: + """ + nodes = [] + for item in items[:-1]: + nodes.extend([item, sep]) + nodes.append(items[-1]) + return Text(*nodes) + + +def as_marked_list(*items: NodeType, marker: str = "- ") -> Text: + """ + Wrap elements as marked list + + :param items: + :param marker: line marker, by default is '- ' + :return: Text + """ + return as_list(*(Text(marker, item) for item in items)) + + +def as_numbered_list(*items: NodeType, start: int = 1, fmt: str = "{}. ") -> Text: + """ + Wrap elements as numbered list + + :param items: + :param start: initial number, by default 1 + :param fmt: number format, by default '{}. ' + :return: Text + """ + return as_list(*(Text(fmt.format(index), item) for index, item in enumerate(items, start))) + + +def as_section(title: NodeType, *body: NodeType) -> Text: + """ + Wrap elements as simple section, section has title and body + + :param title: + :param body: + :return: Text + """ + return Text(title, "\n", *body) + + +def as_marked_section( + title: NodeType, + *body: NodeType, + marker: str = "- ", +) -> Text: + """ + Wrap elements as section with marked list + + :param title: + :param body: + :param marker: + :return: + """ + return as_section(title, as_marked_list(*body, marker=marker)) + + +def as_numbered_section( + title: NodeType, + *body: NodeType, + start: int = 1, + fmt: str = "{}. ", +) -> Text: + """ + Wrap elements as section with numbered list + + :param title: + :param body: + :param start: + :param fmt: + :return: + """ + return as_section(title, as_numbered_list(*body, start=start, fmt=fmt)) + + +def as_key_value(key: NodeType, value: NodeType) -> Text: + """ + Wrap elements pair as key-value line. (:code:`{key}: {value}`) + + :param key: + :param value: + :return: Text + """ + return Text(Bold(key, ":"), " ", value) diff --git a/aiogram/utils/i18n/middleware.py b/aiogram/utils/i18n/middleware.py index 5968cf8a..68be22bc 100644 --- a/aiogram/utils/i18n/middleware.py +++ b/aiogram/utils/i18n/middleware.py @@ -1,5 +1,5 @@ from abc import ABC, abstractmethod -from typing import Any, Awaitable, Callable, Dict, Optional, Set, cast +from typing import Any, Awaitable, Callable, Dict, Optional, Set try: from babel import Locale, UnknownLocaleError diff --git a/aiogram/utils/keyboard.py b/aiogram/utils/keyboard.py index 84258e6d..932f5865 100644 --- a/aiogram/utils/keyboard.py +++ b/aiogram/utils/keyboard.py @@ -1,5 +1,6 @@ from __future__ import annotations +from abc import ABC from copy import deepcopy from itertools import chain from itertools import cycle as repeat_all @@ -14,6 +15,7 @@ from typing import ( Type, TypeVar, Union, + cast, no_type_check, ) @@ -26,6 +28,8 @@ from aiogram.types import ( KeyboardButtonPollType, LoginUrl, ReplyKeyboardMarkup, + SwitchInlineQueryChosenChat, + WebAppInfo, ) ButtonType = TypeVar("ButtonType", InlineKeyboardButton, KeyboardButton) @@ -35,7 +39,7 @@ MIN_WIDTH = 1 MAX_BUTTONS = 100 -class KeyboardBuilder(Generic[ButtonType]): +class KeyboardBuilder(Generic[ButtonType], ABC): """ Generic keyboard builder that helps to adjust your markup with defined shape of lines. @@ -236,6 +240,12 @@ class KeyboardBuilder(Generic[ButtonType]): return self def button(self, **kwargs: Any) -> "KeyboardBuilder[ButtonType]": + """ + Add button to markup + + :param kwargs: + :return: + """ if isinstance(callback_data := kwargs.get("callback_data", None), CallbackData): kwargs["callback_data"] = callback_data.pack() button = self._button_type(**kwargs) @@ -243,8 +253,21 @@ class KeyboardBuilder(Generic[ButtonType]): def as_markup(self, **kwargs: Any) -> Union[InlineKeyboardMarkup, ReplyKeyboardMarkup]: if self._button_type is KeyboardButton: - return ReplyKeyboardMarkup(keyboard=self.export(), **kwargs) - return InlineKeyboardMarkup(inline_keyboard=self.export()) + keyboard = cast(List[List[KeyboardButton]], self.export()) # type: ignore + return ReplyKeyboardMarkup(keyboard=keyboard, **kwargs) + inline_keyboard = cast(List[List[InlineKeyboardButton]], self.export()) # type: ignore + return InlineKeyboardMarkup(inline_keyboard=inline_keyboard) + + def attach(self, builder: "KeyboardBuilder[ButtonType]") -> "KeyboardBuilder[ButtonType]": + if not isinstance(builder, KeyboardBuilder): + raise ValueError(f"Only KeyboardBuilder can be attached, not {type(builder).__name__}") + if builder._button_type is not self._button_type: + raise ValueError( + f"Only builders with same button type can be attached, " + f"not {self._button_type.__name__} and {builder._button_type.__name__}" + ) + self._markup.extend(builder.export()) + return self def repeat_last(items: Iterable[T]) -> Generator[T, None, None]: @@ -278,10 +301,12 @@ class InlineKeyboardBuilder(KeyboardBuilder[InlineKeyboardButton]): *, text: str, url: Optional[str] = None, - login_url: Optional[LoginUrl] = None, callback_data: Optional[Union[str, CallbackData]] = None, + web_app: Optional[WebAppInfo] = None, + login_url: Optional[LoginUrl] = None, switch_inline_query: Optional[str] = None, switch_inline_query_current_chat: Optional[str] = None, + switch_inline_query_chosen_chat: Optional[SwitchInlineQueryChosenChat] = None, callback_game: Optional[CallbackGame] = None, pay: Optional[bool] = None, **kwargs: Any, @@ -303,6 +328,18 @@ class InlineKeyboardBuilder(KeyboardBuilder[InlineKeyboardButton]): """ return InlineKeyboardBuilder(markup=self.export()) + @classmethod + def from_markup( + cls: Type["InlineKeyboardBuilder"], markup: InlineKeyboardMarkup + ) -> "InlineKeyboardBuilder": + """ + Create builder from existing markup + + :param markup: + :return: + """ + return cls(markup=markup.inline_keyboard) + class ReplyKeyboardBuilder(KeyboardBuilder[KeyboardButton]): """ @@ -316,9 +353,12 @@ class ReplyKeyboardBuilder(KeyboardBuilder[KeyboardButton]): self, *, text: str, + request_user: Optional[bool] = None, + request_chat: Optional[bool] = None, request_contact: Optional[bool] = None, request_location: Optional[bool] = None, request_poll: Optional[KeyboardButtonPollType] = None, + web_app: Optional[WebAppInfo] = None, **kwargs: Any, ) -> "KeyboardBuilder[KeyboardButton]": ... @@ -336,3 +376,13 @@ class ReplyKeyboardBuilder(KeyboardBuilder[KeyboardButton]): :return: """ return ReplyKeyboardBuilder(markup=self.export()) + + @classmethod + def from_markup(cls, markup: ReplyKeyboardMarkup) -> "ReplyKeyboardBuilder": + """ + Create builder from existing markup + + :param markup: + :return: + """ + return cls(markup=markup.keyboard) diff --git a/aiogram/utils/magic_filter.py b/aiogram/utils/magic_filter.py index fed406a7..94c92079 100644 --- a/aiogram/utils/magic_filter.py +++ b/aiogram/utils/magic_filter.py @@ -1,4 +1,4 @@ -from typing import Any +from typing import Any, Iterable from magic_filter import MagicFilter as _MagicFilter from magic_filter import MagicT as _MagicT @@ -12,7 +12,7 @@ class AsFilterResultOperation(BaseOperation): self.name = name def resolve(self, value: Any, initial_value: Any) -> Any: - if not value: + if value is None or (isinstance(value, Iterable) and not value): return None return {self.name: value} diff --git a/aiogram/utils/markdown.py b/aiogram/utils/markdown.py index 37600963..08b14a77 100644 --- a/aiogram/utils/markdown.py +++ b/aiogram/utils/markdown.py @@ -48,7 +48,7 @@ def italic(*content: Any, sep: str = " ") -> str: :param sep: :return: """ - return markdown_decoration.italic(value=html_decoration.quote(_join(*content, sep=sep))) + return markdown_decoration.italic(value=markdown_decoration.quote(_join(*content, sep=sep))) def hitalic(*content: Any, sep: str = " ") -> str: diff --git a/aiogram/utils/media_group.py b/aiogram/utils/media_group.py new file mode 100644 index 00000000..c017c2ea --- /dev/null +++ b/aiogram/utils/media_group.py @@ -0,0 +1,366 @@ +from typing import Any, Dict, List, Literal, Optional, Union, overload + +from aiogram.enums import InputMediaType +from aiogram.types import ( + UNSET_PARSE_MODE, + InputFile, + InputMedia, + InputMediaAudio, + InputMediaDocument, + InputMediaPhoto, + InputMediaVideo, + MessageEntity, +) + +MediaType = Union[ + InputMediaAudio, + InputMediaPhoto, + InputMediaVideo, + InputMediaDocument, +] + +MAX_MEDIA_GROUP_SIZE = 10 + + +class MediaGroupBuilder: + # Animated media is not supported yet in Bot API to send as a media group + + def __init__( + self, + media: Optional[List[MediaType]] = None, + caption: Optional[str] = None, + caption_entities: Optional[List[MessageEntity]] = None, + ) -> None: + """ + Helper class for building media groups. + + :param media: A list of media elements to add to the media group. (optional) + :param caption: Caption for the media group. (optional) + :param caption_entities: List of special entities in the caption, + like usernames, URLs, etc. (optional) + """ + self._media: List[MediaType] = [] + self.caption = caption + self.caption_entities = caption_entities + + self._extend(media or []) + + def _add(self, media: MediaType) -> None: + if not isinstance(media, InputMedia): + raise ValueError("Media must be instance of InputMedia") + + if len(self._media) >= MAX_MEDIA_GROUP_SIZE: + raise ValueError("Media group can't contain more than 10 elements") + + self._media.append(media) + + def _extend(self, media: List[MediaType]) -> None: + for m in media: + self._add(m) + + @overload + def add( + self, + *, + type: Literal[InputMediaType.AUDIO], + media: Union[str, InputFile], + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + duration: Optional[int] = None, + performer: Optional[str] = None, + title: Optional[str] = None, + **kwargs: Any, + ) -> None: + pass + + @overload + def add( + self, + *, + type: Literal[InputMediaType.PHOTO], + media: Union[str, InputFile], + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + has_spoiler: Optional[bool] = None, + **kwargs: Any, + ) -> None: + pass + + @overload + def add( + self, + *, + type: Literal[InputMediaType.VIDEO], + media: Union[str, InputFile], + thumbnail: Optional[Union[InputFile, str]] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + width: Optional[int] = None, + height: Optional[int] = None, + duration: Optional[int] = None, + supports_streaming: Optional[bool] = None, + has_spoiler: Optional[bool] = None, + **kwargs: Any, + ) -> None: + pass + + @overload + def add( + self, + *, + type: Literal[InputMediaType.DOCUMENT], + media: Union[str, InputFile], + thumbnail: Optional[Union[InputFile, str]] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + disable_content_type_detection: Optional[bool] = None, + **kwargs: Any, + ) -> None: + pass + + def add(self, **kwargs: Any) -> None: + """ + Add a media object to the media group. + + :param kwargs: Keyword arguments for the media object. + The available keyword arguments depend on the media type. + :return: None + """ + type_ = kwargs.pop("type", None) + if type_ == InputMediaType.AUDIO: + self.add_audio(**kwargs) + elif type_ == InputMediaType.PHOTO: + self.add_photo(**kwargs) + elif type_ == InputMediaType.VIDEO: + self.add_video(**kwargs) + elif type_ == InputMediaType.DOCUMENT: + self.add_document(**kwargs) + else: + raise ValueError(f"Unknown media type: {type_!r}") + + def add_audio( + self, + media: Union[str, InputFile], + thumbnail: Optional[Union[InputFile, str]] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + duration: Optional[int] = None, + performer: Optional[str] = None, + title: Optional[str] = None, + **kwargs: Any, + ) -> None: + """ + Add an audio file to the media group. + + :param media: 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 » ` + :param thumbnail: *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. + :param caption: *Optional*. Caption of the audio to be sent, 0-1024 characters + after entities parsing + :param parse_mode: *Optional*. Mode for parsing entities in the audio caption. + See `formatting options `_ + for more details. + :param caption_entities: *Optional*. List of special entities that appear in the caption, + which can be specified instead of *parse_mode* + :param duration: *Optional*. Duration of the audio in seconds + :param performer: *Optional*. Performer of the audio + :param title: *Optional*. Title of the audio + :return: None + """ + self._add( + InputMediaAudio( + media=media, + thumbnail=thumbnail, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + duration=duration, + performer=performer, + title=title, + **kwargs, + ) + ) + + def add_photo( + self, + media: Union[str, InputFile], + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + has_spoiler: Optional[bool] = None, + **kwargs: Any, + ) -> None: + """ + Add a photo to the media group. + + :param media: 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 » ` + :param caption: *Optional*. Caption of the photo to be sent, 0-1024 characters + after entities parsing + :param parse_mode: *Optional*. Mode for parsing entities in the photo caption. + See `formatting options `_ + for more details. + :param caption_entities: *Optional*. List of special entities that appear in the caption, + which can be specified instead of *parse_mode* + :param has_spoiler: *Optional*. Pass :code:`True` if the photo needs to be covered + with a spoiler animation + :return: None + """ + self._add( + InputMediaPhoto( + media=media, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + has_spoiler=has_spoiler, + **kwargs, + ) + ) + + def add_video( + self, + media: Union[str, InputFile], + thumbnail: Optional[Union[InputFile, str]] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + width: Optional[int] = None, + height: Optional[int] = None, + duration: Optional[int] = None, + supports_streaming: Optional[bool] = None, + has_spoiler: Optional[bool] = None, + **kwargs: Any, + ) -> None: + """ + Add a video to the media group. + + :param media: 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 » ` + :param thumbnail: *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 » ` + :param caption: *Optional*. Caption of the video to be sent, + 0-1024 characters after entities parsing + :param parse_mode: *Optional*. Mode for parsing entities in the video caption. + See `formatting options `_ + for more details. + :param caption_entities: *Optional*. List of special entities that appear in the caption, + which can be specified instead of *parse_mode* + :param width: *Optional*. Video width + :param height: *Optional*. Video height + :param duration: *Optional*. Video duration in seconds + :param supports_streaming: *Optional*. Pass :code:`True` if the uploaded video is + suitable for streaming + :param has_spoiler: *Optional*. Pass :code:`True` if the video needs to be covered + with a spoiler animation + :return: None + """ + self._add( + InputMediaVideo( + media=media, + thumbnail=thumbnail, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + width=width, + height=height, + duration=duration, + supports_streaming=supports_streaming, + has_spoiler=has_spoiler, + **kwargs, + ) + ) + + def add_document( + self, + media: Union[str, InputFile], + thumbnail: Optional[Union[InputFile, str]] = None, + caption: Optional[str] = None, + parse_mode: Optional[str] = UNSET_PARSE_MODE, + caption_entities: Optional[List[MessageEntity]] = None, + disable_content_type_detection: Optional[bool] = None, + **kwargs: Any, + ) -> None: + """ + Add a document to the media group. + + :param media: 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 » ` + :param thumbnail: *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 » ` + :param caption: *Optional*. Caption of the document to be sent, + 0-1024 characters after entities parsing + :param parse_mode: *Optional*. Mode for parsing entities in the document caption. + See `formatting options `_ + for more details. + :param caption_entities: *Optional*. List of special entities that appear + in the caption, which can be specified instead of *parse_mode* + :param disable_content_type_detection: *Optional*. Disables automatic server-side + content type detection for files uploaded using multipart/form-data. + Always :code:`True`, if the document is sent as part of an album. + :return: None + + """ + self._add( + InputMediaDocument( + media=media, + thumbnail=thumbnail, + caption=caption, + parse_mode=parse_mode, + caption_entities=caption_entities, + disable_content_type_detection=disable_content_type_detection, + **kwargs, + ) + ) + + def build(self) -> List[MediaType]: + """ + Builds a list of media objects for a media group. + + Adds the caption to the first media object if it is present. + + :return: List of media objects. + """ + update_first_media: Dict[str, Any] = {"caption": self.caption} + if self.caption_entities is not None: + update_first_media["caption_entities"] = self.caption_entities + update_first_media["parse_mode"] = None + + return [ + media.model_copy(update=update_first_media) + if index == 0 and self.caption is not None + else media + for index, media in enumerate(self._media) + ] diff --git a/aiogram/utils/payload.py b/aiogram/utils/payload.py new file mode 100644 index 00000000..f070dd4e --- /dev/null +++ b/aiogram/utils/payload.py @@ -0,0 +1,108 @@ +""" +Payload preparing + +We have added some utils to make work with payload easier. + +Basic encode example: + + .. code-block:: python + + from aiogram.utils.payload import encode_payload + + encoded = encode_payload("foo") + + # result: "Zm9v" + +Basic decode it back example: + + .. code-block:: python + + from aiogram.utils.payload import decode_payload + + encoded = "Zm9v" + decoded = decode_payload(encoded) + # result: "foo" + +Encoding and decoding with your own methods: + + 1. Create your own cryptor + + .. code-block:: python + + from Cryptodome.Cipher import AES + from Cryptodome.Util.Padding import pad, unpad + + class Cryptor: + def __init__(self, key: str): + self.key = key.encode("utf-8") + self.mode = AES.MODE_ECB # never use ECB in strong systems obviously + self.size = 32 + + @property + def cipher(self): + return AES.new(self.key, self.mode) + + def encrypt(self, data: bytes) -> bytes: + return self.cipher.encrypt(pad(data, self.size)) + + def decrypt(self, data: bytes) -> bytes: + decrypted_data = self.cipher.decrypt(data) + return unpad(decrypted_data, self.size) + + 2. Pass cryptor callable methods to aiogram payload tools + + .. code-block:: python + + cryptor = Cryptor("abcdefghijklmnop") + encoded = encode_payload("foo", encoder=cryptor.encrypt) + decoded = decode_payload(encoded_payload, decoder=cryptor.decrypt) + + # result: decoded == "foo" + +""" +from base64 import urlsafe_b64decode, urlsafe_b64encode +from typing import Callable, Optional + + +def encode_payload( + payload: str, + encoder: Optional[Callable[[bytes], bytes]] = None, +) -> str: + """Encode payload with encoder. + + Result also will be encoded with URL-safe base64url. + """ + if not isinstance(payload, str): + payload = str(payload) + + payload_bytes = payload.encode("utf-8") + if encoder is not None: + payload_bytes = encoder(payload_bytes) + + return _encode_b64(payload_bytes) + + +def decode_payload( + payload: str, + decoder: Optional[Callable[[bytes], bytes]] = None, +) -> str: + """Decode URL-safe base64url payload with decoder.""" + original_payload = _decode_b64(payload) + + if decoder is None: + return original_payload.decode() + + return decoder(original_payload).decode() + + +def _encode_b64(payload: bytes) -> str: + """Encode with URL-safe base64url.""" + bytes_payload: bytes = urlsafe_b64encode(payload) + str_payload = bytes_payload.decode() + return str_payload.replace("=", "") + + +def _decode_b64(payload: str) -> bytes: + """Decode with URL-safe base64url.""" + payload += "=" * (4 - len(payload) % 4) + return urlsafe_b64decode(payload.encode()) diff --git a/aiogram/utils/text_decorations.py b/aiogram/utils/text_decorations.py index 97430a32..eaff6f2c 100644 --- a/aiogram/utils/text_decorations.py +++ b/aiogram/utils/text_decorations.py @@ -43,8 +43,11 @@ class TextDecoration(ABC): MessageEntityType.URL, MessageEntityType.MENTION, MessageEntityType.PHONE_NUMBER, + MessageEntityType.HASHTAG, + MessageEntityType.CASHTAG, + MessageEntityType.EMAIL, }: - # This entities should not be changed + # These entities should not be changed return text if entity.type in { MessageEntityType.BOLD, @@ -71,6 +74,8 @@ class TextDecoration(ABC): if entity.type == MessageEntityType.CUSTOM_EMOJI: return self.custom_emoji(value=text, custom_emoji_id=cast(str, entity.custom_emoji_id)) + # This case is not possible because of `if` above, but if any new entity is added to + # API it will be here too return self.quote(text) def unparse(self, text: str, entities: Optional[List[MessageEntity]] = None) -> str: diff --git a/aiogram/webhook/aiohttp_server.py b/aiogram/webhook/aiohttp_server.py index 4406f1ff..7caa0e15 100644 --- a/aiogram/webhook/aiohttp_server.py +++ b/aiogram/webhook/aiohttp_server.py @@ -2,7 +2,7 @@ import asyncio import secrets from abc import ABC, abstractmethod from asyncio import Transport -from typing import Any, Awaitable, Callable, Dict, Optional, Tuple, cast +from typing import Any, Awaitable, Callable, Dict, Optional, Set, Tuple, cast from aiohttp import MultipartWriter, web from aiohttp.abc import Application @@ -18,18 +18,18 @@ from aiogram.webhook.security import IPFilter def setup_application(app: Application, dispatcher: Dispatcher, /, **kwargs: Any) -> None: """ - This function helps to configure startup-shutdown process + This function helps to configure a startup-shutdown process - :param app: - :param dispatcher: - :param kwargs: + :param app: aiohttp application + :param dispatcher: aiogram dispatcher + :param kwargs: additional data :return: """ workflow_data = { "app": app, "dispatcher": dispatcher, - **kwargs, **dispatcher.workflow_data, + **kwargs, } async def on_startup(*a: Any, **kw: Any) -> None: # pragma: no cover @@ -81,11 +81,6 @@ def ip_filter_middleware( class BaseRequestHandler(ABC): - """ - Base handler that helps to handle incoming request from aiohttp - and propagate it to the Dispatcher - """ - def __init__( self, dispatcher: Dispatcher, @@ -93,13 +88,17 @@ class BaseRequestHandler(ABC): **data: Any, ) -> None: """ + Base handler that helps to handle incoming request from aiohttp + and propagate it to the Dispatcher + :param dispatcher: instance of :class:`aiogram.dispatcher.dispatcher.Dispatcher` - :param handle_in_background: immediately respond to the Telegram instead of - waiting end of handler process + :param handle_in_background: immediately responds to the Telegram instead of + a waiting end of a handler process """ self.dispatcher = dispatcher self.handle_in_background = handle_in_background self.data = data + self._background_feed_update_tasks: Set[asyncio.Task[Any]] = set() def register(self, app: Application, /, path: str, **kwargs: Any) -> None: """ @@ -131,17 +130,23 @@ class BaseRequestHandler(ABC): """ pass + @abstractmethod + def verify_secret(self, telegram_secret_token: str, bot: Bot) -> bool: + pass + async def _background_feed_update(self, bot: Bot, update: Dict[str, Any]) -> None: result = await self.dispatcher.feed_raw_update(bot=bot, update=update, **self.data) if isinstance(result, TelegramMethod): await self.dispatcher.silent_call_request(bot=bot, result=result) async def _handle_request_background(self, bot: Bot, request: web.Request) -> web.Response: - asyncio.create_task( + feed_update_task = asyncio.create_task( self._background_feed_update( bot=bot, update=await request.json(loads=bot.session.json_loads) ) ) + self._background_feed_update_tasks.add(feed_update_task) + feed_update_task.add_done_callback(self._background_feed_update_tasks.discard) return web.json_response({}, dumps=bot.session.json_dumps) def _build_response_writer( @@ -158,7 +163,7 @@ class BaseRequestHandler(ABC): payload.set_content_disposition("form-data", name="method") files: Dict[str, InputFile] = {} - for key, value in result.dict().items(): + for key, value in result.model_dump(warnings=False).items(): value = bot.session.prepare_value(value, bot=bot, files=files) if not value: continue @@ -166,7 +171,7 @@ class BaseRequestHandler(ABC): payload.set_content_disposition("form-data", name=key) for key, value in files.items(): - payload = writer.append(value) + payload = writer.append(value.read(bot)) payload.set_content_disposition( "form-data", name=key, @@ -185,6 +190,8 @@ class BaseRequestHandler(ABC): async def handle(self, request: web.Request) -> web.Response: bot = await self.resolve_bot(request) + if not self.verify_secret(request.headers.get("X-Telegram-Bot-Api-Secret-Token", ""), bot): + return web.Response(body="Unauthorized", status=401) if self.handle_in_background: return await self._handle_request_background(bot=bot, request=request) return await self._handle_request(bot=bot, request=request) @@ -193,21 +200,30 @@ class BaseRequestHandler(ABC): class SimpleRequestHandler(BaseRequestHandler): - """ - Handler for single Bot instance - """ - def __init__( - self, dispatcher: Dispatcher, bot: Bot, handle_in_background: bool = True, **data: Any + self, + dispatcher: Dispatcher, + bot: Bot, + handle_in_background: bool = True, + secret_token: Optional[str] = None, + **data: Any, ) -> None: """ + Handler for single Bot instance + :param dispatcher: instance of :class:`aiogram.dispatcher.dispatcher.Dispatcher` - :param handle_in_background: immediately respond to the Telegram instead of - waiting end of handler process + :param handle_in_background: immediately responds to the Telegram instead of + a waiting end of handler process :param bot: instance of :class:`aiogram.client.bot.Bot` """ super().__init__(dispatcher=dispatcher, handle_in_background=handle_in_background, **data) self.bot = bot + self.secret_token = secret_token + + def verify_secret(self, telegram_secret_token: str, bot: Bot) -> bool: + if self.secret_token: + return secrets.compare_digest(telegram_secret_token, self.secret_token) + return True async def close(self) -> None: """ @@ -220,11 +236,6 @@ class SimpleRequestHandler(BaseRequestHandler): class TokenBasedRequestHandler(BaseRequestHandler): - """ - Handler that supports multiple bots, the context will be resolved - from path variable 'bot_token' - """ - def __init__( self, dispatcher: Dispatcher, @@ -233,9 +244,17 @@ class TokenBasedRequestHandler(BaseRequestHandler): **data: Any, ) -> None: """ + Handler that supports multiple bots the context will be resolved + from path variable 'bot_token' + + .. note:: + + This handler is not recommended in due to token is available in URL + and can be logged by reverse proxy server or other middleware. + :param dispatcher: instance of :class:`aiogram.dispatcher.dispatcher.Dispatcher` - :param handle_in_background: immediately respond to the Telegram instead of - waiting end of handler process + :param handle_in_background: immediately responds to the Telegram instead of + a waiting end of handler process :param bot_settings: kwargs that will be passed to new Bot instance """ super().__init__(dispatcher=dispatcher, handle_in_background=handle_in_background, **data) @@ -244,6 +263,9 @@ class TokenBasedRequestHandler(BaseRequestHandler): self.bot_settings = bot_settings self.bots: Dict[str, Bot] = {} + def verify_secret(self, telegram_secret_token: str, bot: Bot) -> bool: + return True + async def close(self) -> None: for bot in self.bots.values(): await bot.session.close() @@ -262,7 +284,7 @@ class TokenBasedRequestHandler(BaseRequestHandler): async def resolve_bot(self, request: web.Request) -> Bot: """ - Get bot token from path and create or get from cache Bot instance + Get bot token from a path and create or get from cache Bot instance :param request: :return: diff --git a/docs/api/enums/currency.rst b/docs/api/enums/currency.rst new file mode 100644 index 00000000..a180811b --- /dev/null +++ b/docs/api/enums/currency.rst @@ -0,0 +1,9 @@ +######## +Currency +######## + + +.. automodule:: aiogram.enums.currency + :members: + :member-order: bysource + :undoc-members: True diff --git a/docs/api/enums/encrypted_passport_element.rst b/docs/api/enums/encrypted_passport_element.rst new file mode 100644 index 00000000..9d79b162 --- /dev/null +++ b/docs/api/enums/encrypted_passport_element.rst @@ -0,0 +1,9 @@ +######################## +EncryptedPassportElement +######################## + + +.. automodule:: aiogram.enums.encrypted_passport_element + :members: + :member-order: bysource + :undoc-members: True diff --git a/docs/api/enums/index.rst b/docs/api/enums/index.rst index 84a4b837..923319f8 100644 --- a/docs/api/enums/index.rst +++ b/docs/api/enums/index.rst @@ -1,3 +1,5 @@ +.. _enums: + ##### Enums ##### @@ -13,13 +15,16 @@ Here is list of all available enums: chat_member_status chat_type content_type + currency dice_emoji + encrypted_passport_element inline_query_result_type input_media_type mask_position_point menu_button_type message_entity_type parse_mode + passport_element_error_type poll_type sticker_format sticker_type diff --git a/docs/api/enums/passport_element_error_type.rst b/docs/api/enums/passport_element_error_type.rst new file mode 100644 index 00000000..c79d9b11 --- /dev/null +++ b/docs/api/enums/passport_element_error_type.rst @@ -0,0 +1,9 @@ +######################## +PassportElementErrorType +######################## + + +.. automodule:: aiogram.enums.passport_element_error_type + :members: + :member-order: bysource + :undoc-members: True diff --git a/docs/api/methods/add_sticker_to_set.rst b/docs/api/methods/add_sticker_to_set.rst index 8c86d09a..8168a20e 100644 --- a/docs/api/methods/add_sticker_to_set.rst +++ b/docs/api/methods/add_sticker_to_set.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/answer_callback_query.rst b/docs/api/methods/answer_callback_query.rst index aadbc1fa..42c016ec 100644 --- a/docs/api/methods/answer_callback_query.rst +++ b/docs/api/methods/answer_callback_query.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/answer_inline_query.rst b/docs/api/methods/answer_inline_query.rst index 79b46888..3d4b7948 100644 --- a/docs/api/methods/answer_inline_query.rst +++ b/docs/api/methods/answer_inline_query.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/answer_pre_checkout_query.rst b/docs/api/methods/answer_pre_checkout_query.rst index 82157af2..46197e4a 100644 --- a/docs/api/methods/answer_pre_checkout_query.rst +++ b/docs/api/methods/answer_pre_checkout_query.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage @@ -42,3 +43,9 @@ As reply into Webhook in handler .. code-block:: python return AnswerPreCheckoutQuery(...) + + +As shortcut from received object +-------------------------------- + +- :meth:`aiogram.types.pre_checkout_query.PreCheckoutQuery.answer` diff --git a/docs/api/methods/answer_shipping_query.rst b/docs/api/methods/answer_shipping_query.rst index b9ddc36c..de381d0c 100644 --- a/docs/api/methods/answer_shipping_query.rst +++ b/docs/api/methods/answer_shipping_query.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage @@ -42,3 +43,9 @@ As reply into Webhook in handler .. code-block:: python return AnswerShippingQuery(...) + + +As shortcut from received object +-------------------------------- + +- :meth:`aiogram.types.shipping_query.ShippingQuery.answer` diff --git a/docs/api/methods/answer_web_app_query.rst b/docs/api/methods/answer_web_app_query.rst index 884366ee..3a38dab0 100644 --- a/docs/api/methods/answer_web_app_query.rst +++ b/docs/api/methods/answer_web_app_query.rst @@ -8,6 +8,7 @@ Returns: :obj:`SentWebAppMessage` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/approve_chat_join_request.rst b/docs/api/methods/approve_chat_join_request.rst index 0f54f2a8..d87335dc 100644 --- a/docs/api/methods/approve_chat_join_request.rst +++ b/docs/api/methods/approve_chat_join_request.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/ban_chat_member.rst b/docs/api/methods/ban_chat_member.rst index a28db5df..1197408e 100644 --- a/docs/api/methods/ban_chat_member.rst +++ b/docs/api/methods/ban_chat_member.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/ban_chat_sender_chat.rst b/docs/api/methods/ban_chat_sender_chat.rst index 68b2fba5..8e237cab 100644 --- a/docs/api/methods/ban_chat_sender_chat.rst +++ b/docs/api/methods/ban_chat_sender_chat.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/close.rst b/docs/api/methods/close.rst index 6c315eb4..a3f509cf 100644 --- a/docs/api/methods/close.rst +++ b/docs/api/methods/close.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/close_forum_topic.rst b/docs/api/methods/close_forum_topic.rst index 127813d0..416fae77 100644 --- a/docs/api/methods/close_forum_topic.rst +++ b/docs/api/methods/close_forum_topic.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/close_general_forum_topic.rst b/docs/api/methods/close_general_forum_topic.rst index 1f2bfe2c..b316c264 100644 --- a/docs/api/methods/close_general_forum_topic.rst +++ b/docs/api/methods/close_general_forum_topic.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/copy_message.rst b/docs/api/methods/copy_message.rst index 92edcb1a..ae1e5dd1 100644 --- a/docs/api/methods/copy_message.rst +++ b/docs/api/methods/copy_message.rst @@ -8,6 +8,7 @@ Returns: :obj:`MessageId` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/create_chat_invite_link.rst b/docs/api/methods/create_chat_invite_link.rst index 1543a40f..67b2e5c8 100644 --- a/docs/api/methods/create_chat_invite_link.rst +++ b/docs/api/methods/create_chat_invite_link.rst @@ -8,6 +8,7 @@ Returns: :obj:`ChatInviteLink` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/create_forum_topic.rst b/docs/api/methods/create_forum_topic.rst index 0c46afeb..4663049c 100644 --- a/docs/api/methods/create_forum_topic.rst +++ b/docs/api/methods/create_forum_topic.rst @@ -8,6 +8,7 @@ Returns: :obj:`ForumTopic` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/create_invoice_link.rst b/docs/api/methods/create_invoice_link.rst index 5d25aae9..ace5b729 100644 --- a/docs/api/methods/create_invoice_link.rst +++ b/docs/api/methods/create_invoice_link.rst @@ -8,6 +8,7 @@ Returns: :obj:`str` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/create_new_sticker_set.rst b/docs/api/methods/create_new_sticker_set.rst index a118200b..e59e1b14 100644 --- a/docs/api/methods/create_new_sticker_set.rst +++ b/docs/api/methods/create_new_sticker_set.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/decline_chat_join_request.rst b/docs/api/methods/decline_chat_join_request.rst index b0ba4a24..5cee1a7e 100644 --- a/docs/api/methods/decline_chat_join_request.rst +++ b/docs/api/methods/decline_chat_join_request.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/delete_chat_photo.rst b/docs/api/methods/delete_chat_photo.rst index c218a1c0..4757aa75 100644 --- a/docs/api/methods/delete_chat_photo.rst +++ b/docs/api/methods/delete_chat_photo.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/delete_chat_sticker_set.rst b/docs/api/methods/delete_chat_sticker_set.rst index f8472556..6af3c840 100644 --- a/docs/api/methods/delete_chat_sticker_set.rst +++ b/docs/api/methods/delete_chat_sticker_set.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/delete_forum_topic.rst b/docs/api/methods/delete_forum_topic.rst index f17a204c..3966c7d8 100644 --- a/docs/api/methods/delete_forum_topic.rst +++ b/docs/api/methods/delete_forum_topic.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/delete_message.rst b/docs/api/methods/delete_message.rst index 4e6ee2ef..dade9117 100644 --- a/docs/api/methods/delete_message.rst +++ b/docs/api/methods/delete_message.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/delete_my_commands.rst b/docs/api/methods/delete_my_commands.rst index 58cfce2b..cc11d818 100644 --- a/docs/api/methods/delete_my_commands.rst +++ b/docs/api/methods/delete_my_commands.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/delete_sticker_from_set.rst b/docs/api/methods/delete_sticker_from_set.rst index f00d3a9d..7821ef0e 100644 --- a/docs/api/methods/delete_sticker_from_set.rst +++ b/docs/api/methods/delete_sticker_from_set.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/delete_sticker_set.rst b/docs/api/methods/delete_sticker_set.rst index dc9be624..cc2dbdd2 100644 --- a/docs/api/methods/delete_sticker_set.rst +++ b/docs/api/methods/delete_sticker_set.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/delete_webhook.rst b/docs/api/methods/delete_webhook.rst index b903296a..1c3ad04d 100644 --- a/docs/api/methods/delete_webhook.rst +++ b/docs/api/methods/delete_webhook.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/edit_chat_invite_link.rst b/docs/api/methods/edit_chat_invite_link.rst index a1543b3e..709d26b8 100644 --- a/docs/api/methods/edit_chat_invite_link.rst +++ b/docs/api/methods/edit_chat_invite_link.rst @@ -8,6 +8,7 @@ Returns: :obj:`ChatInviteLink` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/edit_forum_topic.rst b/docs/api/methods/edit_forum_topic.rst index daa6ff0e..a190d534 100644 --- a/docs/api/methods/edit_forum_topic.rst +++ b/docs/api/methods/edit_forum_topic.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/edit_general_forum_topic.rst b/docs/api/methods/edit_general_forum_topic.rst index b038c9d3..a06021d5 100644 --- a/docs/api/methods/edit_general_forum_topic.rst +++ b/docs/api/methods/edit_general_forum_topic.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/edit_message_caption.rst b/docs/api/methods/edit_message_caption.rst index cb90bba3..a37c17a5 100644 --- a/docs/api/methods/edit_message_caption.rst +++ b/docs/api/methods/edit_message_caption.rst @@ -8,6 +8,7 @@ Returns: :obj:`Union[Message, bool]` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/edit_message_live_location.rst b/docs/api/methods/edit_message_live_location.rst index edeb5353..f2f0b3df 100644 --- a/docs/api/methods/edit_message_live_location.rst +++ b/docs/api/methods/edit_message_live_location.rst @@ -8,6 +8,7 @@ Returns: :obj:`Union[Message, bool]` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/edit_message_media.rst b/docs/api/methods/edit_message_media.rst index faa4c6c2..aae7d89b 100644 --- a/docs/api/methods/edit_message_media.rst +++ b/docs/api/methods/edit_message_media.rst @@ -8,6 +8,7 @@ Returns: :obj:`Union[Message, bool]` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/edit_message_reply_markup.rst b/docs/api/methods/edit_message_reply_markup.rst index d8db9a2b..6d67bdbe 100644 --- a/docs/api/methods/edit_message_reply_markup.rst +++ b/docs/api/methods/edit_message_reply_markup.rst @@ -8,6 +8,7 @@ Returns: :obj:`Union[Message, bool]` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage @@ -48,3 +49,4 @@ As shortcut from received object -------------------------------- - :meth:`aiogram.types.message.Message.edit_reply_markup` +- :meth:`aiogram.types.message.Message.delete_reply_markup` diff --git a/docs/api/methods/edit_message_text.rst b/docs/api/methods/edit_message_text.rst index 0098e9a1..b707de73 100644 --- a/docs/api/methods/edit_message_text.rst +++ b/docs/api/methods/edit_message_text.rst @@ -8,6 +8,7 @@ Returns: :obj:`Union[Message, bool]` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/export_chat_invite_link.rst b/docs/api/methods/export_chat_invite_link.rst index c9bd9945..c8aa1b6b 100644 --- a/docs/api/methods/export_chat_invite_link.rst +++ b/docs/api/methods/export_chat_invite_link.rst @@ -8,6 +8,7 @@ Returns: :obj:`str` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/forward_message.rst b/docs/api/methods/forward_message.rst index 38465cf5..516442ad 100644 --- a/docs/api/methods/forward_message.rst +++ b/docs/api/methods/forward_message.rst @@ -8,6 +8,7 @@ Returns: :obj:`Message` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/get_chat.rst b/docs/api/methods/get_chat.rst index dbc1143c..c0c95236 100644 --- a/docs/api/methods/get_chat.rst +++ b/docs/api/methods/get_chat.rst @@ -8,6 +8,7 @@ Returns: :obj:`Chat` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/get_chat_administrators.rst b/docs/api/methods/get_chat_administrators.rst index f56966d2..9a1784b5 100644 --- a/docs/api/methods/get_chat_administrators.rst +++ b/docs/api/methods/get_chat_administrators.rst @@ -8,6 +8,7 @@ Returns: :obj:`List[Union[ChatMemberOwner, ChatMemberAdministrator, ChatMemberMe :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/get_chat_member.rst b/docs/api/methods/get_chat_member.rst index 6155fb24..60742bf6 100644 --- a/docs/api/methods/get_chat_member.rst +++ b/docs/api/methods/get_chat_member.rst @@ -8,6 +8,7 @@ Returns: :obj:`Union[ChatMemberOwner, ChatMemberAdministrator, ChatMemberMember, :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/get_chat_member_count.rst b/docs/api/methods/get_chat_member_count.rst index ec4497b6..73177a1a 100644 --- a/docs/api/methods/get_chat_member_count.rst +++ b/docs/api/methods/get_chat_member_count.rst @@ -8,6 +8,7 @@ Returns: :obj:`int` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/get_chat_menu_button.rst b/docs/api/methods/get_chat_menu_button.rst index 5a3f5a6f..e70fddb0 100644 --- a/docs/api/methods/get_chat_menu_button.rst +++ b/docs/api/methods/get_chat_menu_button.rst @@ -8,6 +8,7 @@ Returns: :obj:`Union[MenuButtonDefault, MenuButtonWebApp, MenuButtonCommands]` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/get_custom_emoji_stickers.rst b/docs/api/methods/get_custom_emoji_stickers.rst index 9c7455fd..c7b4dbc5 100644 --- a/docs/api/methods/get_custom_emoji_stickers.rst +++ b/docs/api/methods/get_custom_emoji_stickers.rst @@ -8,6 +8,7 @@ Returns: :obj:`List[Sticker]` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/get_file.rst b/docs/api/methods/get_file.rst index eb9f3b7d..5eda2ebf 100644 --- a/docs/api/methods/get_file.rst +++ b/docs/api/methods/get_file.rst @@ -8,6 +8,7 @@ Returns: :obj:`File` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/get_forum_topic_icon_stickers.rst b/docs/api/methods/get_forum_topic_icon_stickers.rst index ef3887e4..5e6680a7 100644 --- a/docs/api/methods/get_forum_topic_icon_stickers.rst +++ b/docs/api/methods/get_forum_topic_icon_stickers.rst @@ -8,6 +8,7 @@ Returns: :obj:`List[Sticker]` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/get_game_high_scores.rst b/docs/api/methods/get_game_high_scores.rst index d57d781d..67b40ef3 100644 --- a/docs/api/methods/get_game_high_scores.rst +++ b/docs/api/methods/get_game_high_scores.rst @@ -8,6 +8,7 @@ Returns: :obj:`List[GameHighScore]` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/get_me.rst b/docs/api/methods/get_me.rst index cf883046..96117b9e 100644 --- a/docs/api/methods/get_me.rst +++ b/docs/api/methods/get_me.rst @@ -8,6 +8,7 @@ Returns: :obj:`User` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/get_my_commands.rst b/docs/api/methods/get_my_commands.rst index a67f1d88..9ca3a907 100644 --- a/docs/api/methods/get_my_commands.rst +++ b/docs/api/methods/get_my_commands.rst @@ -8,6 +8,7 @@ Returns: :obj:`List[BotCommand]` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/get_my_default_administrator_rights.rst b/docs/api/methods/get_my_default_administrator_rights.rst index 5d28e41f..360f482a 100644 --- a/docs/api/methods/get_my_default_administrator_rights.rst +++ b/docs/api/methods/get_my_default_administrator_rights.rst @@ -8,6 +8,7 @@ Returns: :obj:`ChatAdministratorRights` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/get_my_description.rst b/docs/api/methods/get_my_description.rst index c68bda0d..d8846821 100644 --- a/docs/api/methods/get_my_description.rst +++ b/docs/api/methods/get_my_description.rst @@ -8,6 +8,7 @@ Returns: :obj:`BotDescription` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/get_my_name.rst b/docs/api/methods/get_my_name.rst index 656c41ed..5bf9c10d 100644 --- a/docs/api/methods/get_my_name.rst +++ b/docs/api/methods/get_my_name.rst @@ -8,6 +8,7 @@ Returns: :obj:`BotName` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/get_my_short_description.rst b/docs/api/methods/get_my_short_description.rst index 967d3318..3acac53a 100644 --- a/docs/api/methods/get_my_short_description.rst +++ b/docs/api/methods/get_my_short_description.rst @@ -8,6 +8,7 @@ Returns: :obj:`BotShortDescription` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/get_sticker_set.rst b/docs/api/methods/get_sticker_set.rst index 2b131b21..e30f9110 100644 --- a/docs/api/methods/get_sticker_set.rst +++ b/docs/api/methods/get_sticker_set.rst @@ -8,6 +8,7 @@ Returns: :obj:`StickerSet` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/get_updates.rst b/docs/api/methods/get_updates.rst index 7d14ee1e..f774aef1 100644 --- a/docs/api/methods/get_updates.rst +++ b/docs/api/methods/get_updates.rst @@ -8,6 +8,7 @@ Returns: :obj:`List[Update]` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/get_user_profile_photos.rst b/docs/api/methods/get_user_profile_photos.rst index f0c36a61..7b165bae 100644 --- a/docs/api/methods/get_user_profile_photos.rst +++ b/docs/api/methods/get_user_profile_photos.rst @@ -8,6 +8,7 @@ Returns: :obj:`UserProfilePhotos` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/get_webhook_info.rst b/docs/api/methods/get_webhook_info.rst index d038a261..a2e2dc08 100644 --- a/docs/api/methods/get_webhook_info.rst +++ b/docs/api/methods/get_webhook_info.rst @@ -8,6 +8,7 @@ Returns: :obj:`WebhookInfo` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/hide_general_forum_topic.rst b/docs/api/methods/hide_general_forum_topic.rst index df36474e..619e5233 100644 --- a/docs/api/methods/hide_general_forum_topic.rst +++ b/docs/api/methods/hide_general_forum_topic.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/index.rst b/docs/api/methods/index.rst index 4a7f4b01..e63e35b7 100644 --- a/docs/api/methods/index.rst +++ b/docs/api/methods/index.rst @@ -86,6 +86,7 @@ Available methods unhide_general_forum_topic unpin_all_chat_messages unpin_all_forum_topic_messages + unpin_all_general_forum_topic_messages unpin_chat_message Payments diff --git a/docs/api/methods/leave_chat.rst b/docs/api/methods/leave_chat.rst index 8c84e324..fd829a1a 100644 --- a/docs/api/methods/leave_chat.rst +++ b/docs/api/methods/leave_chat.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/log_out.rst b/docs/api/methods/log_out.rst index 683cf19a..d1545da8 100644 --- a/docs/api/methods/log_out.rst +++ b/docs/api/methods/log_out.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/pin_chat_message.rst b/docs/api/methods/pin_chat_message.rst index 11de4e53..6c6756bd 100644 --- a/docs/api/methods/pin_chat_message.rst +++ b/docs/api/methods/pin_chat_message.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/promote_chat_member.rst b/docs/api/methods/promote_chat_member.rst index aada3f05..19bcd5be 100644 --- a/docs/api/methods/promote_chat_member.rst +++ b/docs/api/methods/promote_chat_member.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/reopen_forum_topic.rst b/docs/api/methods/reopen_forum_topic.rst index c76b7adc..9838d934 100644 --- a/docs/api/methods/reopen_forum_topic.rst +++ b/docs/api/methods/reopen_forum_topic.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/reopen_general_forum_topic.rst b/docs/api/methods/reopen_general_forum_topic.rst index ec217d9c..5d89f7cc 100644 --- a/docs/api/methods/reopen_general_forum_topic.rst +++ b/docs/api/methods/reopen_general_forum_topic.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/restrict_chat_member.rst b/docs/api/methods/restrict_chat_member.rst index b063b8b1..da10bbd9 100644 --- a/docs/api/methods/restrict_chat_member.rst +++ b/docs/api/methods/restrict_chat_member.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/revoke_chat_invite_link.rst b/docs/api/methods/revoke_chat_invite_link.rst index f8293be2..5d88c4ce 100644 --- a/docs/api/methods/revoke_chat_invite_link.rst +++ b/docs/api/methods/revoke_chat_invite_link.rst @@ -8,6 +8,7 @@ Returns: :obj:`ChatInviteLink` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/send_animation.rst b/docs/api/methods/send_animation.rst index 220bf5ba..2bc2d9a5 100644 --- a/docs/api/methods/send_animation.rst +++ b/docs/api/methods/send_animation.rst @@ -8,6 +8,7 @@ Returns: :obj:`Message` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage @@ -49,3 +50,6 @@ As shortcut from received object - :meth:`aiogram.types.message.Message.answer_animation` - :meth:`aiogram.types.message.Message.reply_animation` +- :meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_animation` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm` diff --git a/docs/api/methods/send_audio.rst b/docs/api/methods/send_audio.rst index 877478ba..569e7e2b 100644 --- a/docs/api/methods/send_audio.rst +++ b/docs/api/methods/send_audio.rst @@ -8,6 +8,7 @@ Returns: :obj:`Message` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage @@ -49,3 +50,6 @@ As shortcut from received object - :meth:`aiogram.types.message.Message.answer_audio` - :meth:`aiogram.types.message.Message.reply_audio` +- :meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_audio` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm` diff --git a/docs/api/methods/send_chat_action.rst b/docs/api/methods/send_chat_action.rst index c1ad9e61..efff1e27 100644 --- a/docs/api/methods/send_chat_action.rst +++ b/docs/api/methods/send_chat_action.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/send_contact.rst b/docs/api/methods/send_contact.rst index 05af5b1e..c39f5186 100644 --- a/docs/api/methods/send_contact.rst +++ b/docs/api/methods/send_contact.rst @@ -8,6 +8,7 @@ Returns: :obj:`Message` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage @@ -49,3 +50,6 @@ As shortcut from received object - :meth:`aiogram.types.message.Message.answer_contact` - :meth:`aiogram.types.message.Message.reply_contact` +- :meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_contact` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_contact` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_contact_pm` diff --git a/docs/api/methods/send_dice.rst b/docs/api/methods/send_dice.rst index 5e1548f7..3624a0e9 100644 --- a/docs/api/methods/send_dice.rst +++ b/docs/api/methods/send_dice.rst @@ -8,6 +8,7 @@ Returns: :obj:`Message` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage @@ -49,3 +50,6 @@ As shortcut from received object - :meth:`aiogram.types.message.Message.answer_dice` - :meth:`aiogram.types.message.Message.reply_dice` +- :meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_dice` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_dice` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_dice_pm` diff --git a/docs/api/methods/send_document.rst b/docs/api/methods/send_document.rst index 60d9d0b0..3a5af639 100644 --- a/docs/api/methods/send_document.rst +++ b/docs/api/methods/send_document.rst @@ -8,6 +8,7 @@ Returns: :obj:`Message` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage @@ -49,3 +50,6 @@ As shortcut from received object - :meth:`aiogram.types.message.Message.answer_document` - :meth:`aiogram.types.message.Message.reply_document` +- :meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_document` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_document` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_document_pm` diff --git a/docs/api/methods/send_game.rst b/docs/api/methods/send_game.rst index d145c430..4bf86c7a 100644 --- a/docs/api/methods/send_game.rst +++ b/docs/api/methods/send_game.rst @@ -8,6 +8,7 @@ Returns: :obj:`Message` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage @@ -49,3 +50,6 @@ As shortcut from received object - :meth:`aiogram.types.message.Message.answer_game` - :meth:`aiogram.types.message.Message.reply_game` +- :meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_game` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_game` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_game_pm` diff --git a/docs/api/methods/send_invoice.rst b/docs/api/methods/send_invoice.rst index 1e5ce258..fcd7818c 100644 --- a/docs/api/methods/send_invoice.rst +++ b/docs/api/methods/send_invoice.rst @@ -8,6 +8,7 @@ Returns: :obj:`Message` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage @@ -49,3 +50,6 @@ As shortcut from received object - :meth:`aiogram.types.message.Message.answer_invoice` - :meth:`aiogram.types.message.Message.reply_invoice` +- :meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm` diff --git a/docs/api/methods/send_location.rst b/docs/api/methods/send_location.rst index 3c52df75..db9acffe 100644 --- a/docs/api/methods/send_location.rst +++ b/docs/api/methods/send_location.rst @@ -8,6 +8,7 @@ Returns: :obj:`Message` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage @@ -49,3 +50,6 @@ As shortcut from received object - :meth:`aiogram.types.message.Message.answer_location` - :meth:`aiogram.types.message.Message.reply_location` +- :meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_location` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_location` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_location_pm` diff --git a/docs/api/methods/send_media_group.rst b/docs/api/methods/send_media_group.rst index fe0f8e03..ec43022c 100644 --- a/docs/api/methods/send_media_group.rst +++ b/docs/api/methods/send_media_group.rst @@ -8,6 +8,7 @@ Returns: :obj:`List[Message]` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage @@ -49,3 +50,6 @@ As shortcut from received object - :meth:`aiogram.types.message.Message.answer_media_group` - :meth:`aiogram.types.message.Message.reply_media_group` +- :meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_media_group` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group_pm` diff --git a/docs/api/methods/send_message.rst b/docs/api/methods/send_message.rst index 9edb4bf3..d3157f50 100644 --- a/docs/api/methods/send_message.rst +++ b/docs/api/methods/send_message.rst @@ -8,6 +8,7 @@ Returns: :obj:`Message` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage @@ -49,3 +50,6 @@ As shortcut from received object - :meth:`aiogram.types.message.Message.answer` - :meth:`aiogram.types.message.Message.reply` +- :meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_pm` diff --git a/docs/api/methods/send_photo.rst b/docs/api/methods/send_photo.rst index 85fb0921..d7ce9653 100644 --- a/docs/api/methods/send_photo.rst +++ b/docs/api/methods/send_photo.rst @@ -8,6 +8,7 @@ Returns: :obj:`Message` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage @@ -49,3 +50,6 @@ As shortcut from received object - :meth:`aiogram.types.message.Message.answer_photo` - :meth:`aiogram.types.message.Message.reply_photo` +- :meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_photo` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_photo` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_photo_pm` diff --git a/docs/api/methods/send_poll.rst b/docs/api/methods/send_poll.rst index 14e10d19..e92e15b5 100644 --- a/docs/api/methods/send_poll.rst +++ b/docs/api/methods/send_poll.rst @@ -8,6 +8,7 @@ Returns: :obj:`Message` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage @@ -49,3 +50,6 @@ As shortcut from received object - :meth:`aiogram.types.message.Message.answer_poll` - :meth:`aiogram.types.message.Message.reply_poll` +- :meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_poll` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm` diff --git a/docs/api/methods/send_sticker.rst b/docs/api/methods/send_sticker.rst index 395fb12b..ea5334af 100644 --- a/docs/api/methods/send_sticker.rst +++ b/docs/api/methods/send_sticker.rst @@ -8,6 +8,7 @@ Returns: :obj:`Message` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage @@ -49,3 +50,6 @@ As shortcut from received object - :meth:`aiogram.types.message.Message.answer_sticker` - :meth:`aiogram.types.message.Message.reply_sticker` +- :meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_sticker` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker_pm` diff --git a/docs/api/methods/send_venue.rst b/docs/api/methods/send_venue.rst index 4985cbc1..d7a09910 100644 --- a/docs/api/methods/send_venue.rst +++ b/docs/api/methods/send_venue.rst @@ -8,6 +8,7 @@ Returns: :obj:`Message` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage @@ -49,3 +50,6 @@ As shortcut from received object - :meth:`aiogram.types.message.Message.answer_venue` - :meth:`aiogram.types.message.Message.reply_venue` +- :meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_venue` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm` diff --git a/docs/api/methods/send_video.rst b/docs/api/methods/send_video.rst index a8e6e1b4..899779da 100644 --- a/docs/api/methods/send_video.rst +++ b/docs/api/methods/send_video.rst @@ -8,6 +8,7 @@ Returns: :obj:`Message` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage @@ -49,3 +50,6 @@ As shortcut from received object - :meth:`aiogram.types.message.Message.answer_video` - :meth:`aiogram.types.message.Message.reply_video` +- :meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_video` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm` diff --git a/docs/api/methods/send_video_note.rst b/docs/api/methods/send_video_note.rst index aa27c198..80dbe859 100644 --- a/docs/api/methods/send_video_note.rst +++ b/docs/api/methods/send_video_note.rst @@ -8,6 +8,7 @@ Returns: :obj:`Message` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage @@ -49,3 +50,6 @@ As shortcut from received object - :meth:`aiogram.types.message.Message.answer_video_note` - :meth:`aiogram.types.message.Message.reply_video_note` +- :meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video_note` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note_pm` diff --git a/docs/api/methods/send_voice.rst b/docs/api/methods/send_voice.rst index 3742cdb3..8d81b707 100644 --- a/docs/api/methods/send_voice.rst +++ b/docs/api/methods/send_voice.rst @@ -8,6 +8,7 @@ Returns: :obj:`Message` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage @@ -49,3 +50,6 @@ As shortcut from received object - :meth:`aiogram.types.message.Message.answer_voice` - :meth:`aiogram.types.message.Message.reply_voice` +- :meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_voice` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_voice` +- :meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_voice_pm` diff --git a/docs/api/methods/set_chat_administrator_custom_title.rst b/docs/api/methods/set_chat_administrator_custom_title.rst index 60d8df84..560185f1 100644 --- a/docs/api/methods/set_chat_administrator_custom_title.rst +++ b/docs/api/methods/set_chat_administrator_custom_title.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/set_chat_description.rst b/docs/api/methods/set_chat_description.rst index 85cd7d48..7cd242b7 100644 --- a/docs/api/methods/set_chat_description.rst +++ b/docs/api/methods/set_chat_description.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/set_chat_menu_button.rst b/docs/api/methods/set_chat_menu_button.rst index 671313fe..2262dca7 100644 --- a/docs/api/methods/set_chat_menu_button.rst +++ b/docs/api/methods/set_chat_menu_button.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/set_chat_permissions.rst b/docs/api/methods/set_chat_permissions.rst index 7867065c..0636fede 100644 --- a/docs/api/methods/set_chat_permissions.rst +++ b/docs/api/methods/set_chat_permissions.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/set_chat_photo.rst b/docs/api/methods/set_chat_photo.rst index ee7434f9..6a5edccd 100644 --- a/docs/api/methods/set_chat_photo.rst +++ b/docs/api/methods/set_chat_photo.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/set_chat_sticker_set.rst b/docs/api/methods/set_chat_sticker_set.rst index eccd0da3..f42c7b2e 100644 --- a/docs/api/methods/set_chat_sticker_set.rst +++ b/docs/api/methods/set_chat_sticker_set.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/set_chat_title.rst b/docs/api/methods/set_chat_title.rst index ffac0b6e..657283a4 100644 --- a/docs/api/methods/set_chat_title.rst +++ b/docs/api/methods/set_chat_title.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/set_custom_emoji_sticker_set_thumbnail.rst b/docs/api/methods/set_custom_emoji_sticker_set_thumbnail.rst index 093e30c9..16cce30f 100644 --- a/docs/api/methods/set_custom_emoji_sticker_set_thumbnail.rst +++ b/docs/api/methods/set_custom_emoji_sticker_set_thumbnail.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/set_game_score.rst b/docs/api/methods/set_game_score.rst index ef484655..6a227095 100644 --- a/docs/api/methods/set_game_score.rst +++ b/docs/api/methods/set_game_score.rst @@ -8,6 +8,7 @@ Returns: :obj:`Union[Message, bool]` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/set_my_commands.rst b/docs/api/methods/set_my_commands.rst index 191f30e1..b8491102 100644 --- a/docs/api/methods/set_my_commands.rst +++ b/docs/api/methods/set_my_commands.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/set_my_default_administrator_rights.rst b/docs/api/methods/set_my_default_administrator_rights.rst index 1caabdfd..db381aea 100644 --- a/docs/api/methods/set_my_default_administrator_rights.rst +++ b/docs/api/methods/set_my_default_administrator_rights.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/set_my_description.rst b/docs/api/methods/set_my_description.rst index 126199ee..a3032799 100644 --- a/docs/api/methods/set_my_description.rst +++ b/docs/api/methods/set_my_description.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/set_my_name.rst b/docs/api/methods/set_my_name.rst index f08f6fee..2a536ff4 100644 --- a/docs/api/methods/set_my_name.rst +++ b/docs/api/methods/set_my_name.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/set_my_short_description.rst b/docs/api/methods/set_my_short_description.rst index f7f250d7..e2bf6f7a 100644 --- a/docs/api/methods/set_my_short_description.rst +++ b/docs/api/methods/set_my_short_description.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/set_passport_data_errors.rst b/docs/api/methods/set_passport_data_errors.rst index ac49f78c..b05fe1b2 100644 --- a/docs/api/methods/set_passport_data_errors.rst +++ b/docs/api/methods/set_passport_data_errors.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/set_sticker_emoji_list.rst b/docs/api/methods/set_sticker_emoji_list.rst index c8602f0f..5856fbc5 100644 --- a/docs/api/methods/set_sticker_emoji_list.rst +++ b/docs/api/methods/set_sticker_emoji_list.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/set_sticker_keywords.rst b/docs/api/methods/set_sticker_keywords.rst index d15c11ac..5e263d39 100644 --- a/docs/api/methods/set_sticker_keywords.rst +++ b/docs/api/methods/set_sticker_keywords.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/set_sticker_mask_position.rst b/docs/api/methods/set_sticker_mask_position.rst index 48041877..dc0d0eb9 100644 --- a/docs/api/methods/set_sticker_mask_position.rst +++ b/docs/api/methods/set_sticker_mask_position.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/set_sticker_position_in_set.rst b/docs/api/methods/set_sticker_position_in_set.rst index 04a8a9cf..82915f41 100644 --- a/docs/api/methods/set_sticker_position_in_set.rst +++ b/docs/api/methods/set_sticker_position_in_set.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/set_sticker_set_thumb.rst b/docs/api/methods/set_sticker_set_thumb.rst deleted file mode 100644 index 133fad94..00000000 --- a/docs/api/methods/set_sticker_set_thumb.rst +++ /dev/null @@ -1,44 +0,0 @@ -################## -setStickerSetThumb -################## - -Returns: :obj:`bool` - -.. automodule:: aiogram.methods.set_sticker_set_thumb - :members: - :member-order: bysource - :undoc-members: True - - -Usage -===== - -As bot method -------------- - -.. code-block:: - - result: bool = await bot.set_sticker_set_thumb(...) - - -Method as object ----------------- - -Imports: - -- :code:`from aiogram.methods.set_sticker_set_thumb import SetStickerSetThumb` -- alias: :code:`from aiogram.methods import SetStickerSetThumb` - -With specific bot -~~~~~~~~~~~~~~~~~ - -.. code-block:: python - - result: bool = await bot(SetStickerSetThumb(...)) - -As reply into Webhook in handler -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: python - - return SetStickerSetThumb(...) diff --git a/docs/api/methods/set_sticker_set_thumbnail.rst b/docs/api/methods/set_sticker_set_thumbnail.rst index 218c1012..3a72fab0 100644 --- a/docs/api/methods/set_sticker_set_thumbnail.rst +++ b/docs/api/methods/set_sticker_set_thumbnail.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/set_sticker_set_title.rst b/docs/api/methods/set_sticker_set_title.rst index f6924dd4..74d487b2 100644 --- a/docs/api/methods/set_sticker_set_title.rst +++ b/docs/api/methods/set_sticker_set_title.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/set_webhook.rst b/docs/api/methods/set_webhook.rst index 8e7d78d5..52def7c0 100644 --- a/docs/api/methods/set_webhook.rst +++ b/docs/api/methods/set_webhook.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/stop_message_live_location.rst b/docs/api/methods/stop_message_live_location.rst index 74f105d1..568d41cc 100644 --- a/docs/api/methods/stop_message_live_location.rst +++ b/docs/api/methods/stop_message_live_location.rst @@ -8,6 +8,7 @@ Returns: :obj:`Union[Message, bool]` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/stop_poll.rst b/docs/api/methods/stop_poll.rst index c51afc90..83c14574 100644 --- a/docs/api/methods/stop_poll.rst +++ b/docs/api/methods/stop_poll.rst @@ -8,6 +8,7 @@ Returns: :obj:`Poll` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/unban_chat_member.rst b/docs/api/methods/unban_chat_member.rst index 0b588b70..4b76a602 100644 --- a/docs/api/methods/unban_chat_member.rst +++ b/docs/api/methods/unban_chat_member.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/unban_chat_sender_chat.rst b/docs/api/methods/unban_chat_sender_chat.rst index 1fdfd5a3..88b00b90 100644 --- a/docs/api/methods/unban_chat_sender_chat.rst +++ b/docs/api/methods/unban_chat_sender_chat.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/unhide_general_forum_topic.rst b/docs/api/methods/unhide_general_forum_topic.rst index e2601df8..6e6be61b 100644 --- a/docs/api/methods/unhide_general_forum_topic.rst +++ b/docs/api/methods/unhide_general_forum_topic.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/unpin_all_chat_messages.rst b/docs/api/methods/unpin_all_chat_messages.rst index 854091e5..571be7f0 100644 --- a/docs/api/methods/unpin_all_chat_messages.rst +++ b/docs/api/methods/unpin_all_chat_messages.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/unpin_all_forum_topic_messages.rst b/docs/api/methods/unpin_all_forum_topic_messages.rst index 7ae521f4..60b03070 100644 --- a/docs/api/methods/unpin_all_forum_topic_messages.rst +++ b/docs/api/methods/unpin_all_forum_topic_messages.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/unpin_all_general_forum_topic_messages.rst b/docs/api/methods/unpin_all_general_forum_topic_messages.rst new file mode 100644 index 00000000..b71da566 --- /dev/null +++ b/docs/api/methods/unpin_all_general_forum_topic_messages.rst @@ -0,0 +1,51 @@ +################################# +unpinAllGeneralForumTopicMessages +################################# + +Returns: :obj:`bool` + +.. automodule:: aiogram.methods.unpin_all_general_forum_topic_messages + :members: + :member-order: bysource + :undoc-members: True + :exclude-members: model_config,model_fields + + +Usage +===== + +As bot method +------------- + +.. code-block:: + + result: bool = await bot.unpin_all_general_forum_topic_messages(...) + + +Method as object +---------------- + +Imports: + +- :code:`from aiogram.methods.unpin_all_general_forum_topic_messages import UnpinAllGeneralForumTopicMessages` +- alias: :code:`from aiogram.methods import UnpinAllGeneralForumTopicMessages` + +With specific bot +~~~~~~~~~~~~~~~~~ + +.. code-block:: python + + result: bool = await bot(UnpinAllGeneralForumTopicMessages(...)) + +As reply into Webhook in handler +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: python + + return UnpinAllGeneralForumTopicMessages(...) + + +As shortcut from received object +-------------------------------- + +- :meth:`aiogram.types.chat.Chat.unpin_all_general_forum_topic_messages` diff --git a/docs/api/methods/unpin_chat_message.rst b/docs/api/methods/unpin_chat_message.rst index 9a03c08b..003c83b8 100644 --- a/docs/api/methods/unpin_chat_message.rst +++ b/docs/api/methods/unpin_chat_message.rst @@ -8,6 +8,7 @@ Returns: :obj:`bool` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/methods/upload_sticker_file.rst b/docs/api/methods/upload_sticker_file.rst index c542515d..88cc8859 100644 --- a/docs/api/methods/upload_sticker_file.rst +++ b/docs/api/methods/upload_sticker_file.rst @@ -8,6 +8,7 @@ Returns: :obj:`File` :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields Usage diff --git a/docs/api/session/custom_server.rst b/docs/api/session/custom_server.rst index 23126551..22c5b6bd 100644 --- a/docs/api/session/custom_server.rst +++ b/docs/api/session/custom_server.rst @@ -1,14 +1,14 @@ Use Custom API server ===================== -.. autoclass:: aiogram.client.telegram.TelegramAPIServer - :members: - For example, if you want to use self-hosted API server: -.. code-block:: python3 +.. code-block:: python session = AiohttpSession( api=TelegramAPIServer.from_base('http://localhost:8082') ) bot = Bot(..., session=session) + +.. autoclass:: aiogram.client.telegram.TelegramAPIServer + :members: diff --git a/docs/api/session/index.rst b/docs/api/session/index.rst index dff24e7a..da92bd4d 100644 --- a/docs/api/session/index.rst +++ b/docs/api/session/index.rst @@ -8,3 +8,4 @@ Client sessions is used for interacting with API server. custom_server base aiohttp + middleware diff --git a/docs/api/session/middleware.rst b/docs/api/session/middleware.rst new file mode 100644 index 00000000..5a312c3e --- /dev/null +++ b/docs/api/session/middleware.rst @@ -0,0 +1,75 @@ +########################## +Client session middlewares +########################## + +In some cases you may want to add some middlewares to the client session to customize the behavior of the client. + +Some useful cases that is: + +- Log the outgoing requests +- Customize the request parameters +- Handle rate limiting errors and retry the request +- others ... + +So, you can do it using client session middlewares. +A client session middleware is a function (or callable class) that receives the request and the next middleware to call. +The middleware can modify the request and then call the next middleware to continue the request processing. + +How to register client session middleware? +========================================== + +Register using register method +------------------------------ + +.. code-block:: python + + bot.session.middleware(RequestLogging(ignore_methods=[GetUpdates])) + +Register using decorator +------------------------ + +.. code-block:: python + + @bot.session.middleware() + async def my_middleware( + make_request: NextRequestMiddlewareType[TelegramType], + bot: "Bot", + method: TelegramMethod[TelegramType], + ) -> Response[TelegramType]: + # do something with request + return await make_request(bot, method) + + +Example +======= + +Class based session middleware +------------------------------ + +.. literalinclude:: ../../../aiogram/client/session/middlewares/request_logging.py + :lines: 16- + :language: python + :linenos: + +.. note:: + + this middleware is already implemented inside aiogram, so, if you want to use it you can + just import it :code:`from aiogram.client.session.middlewares.request_logging import RequestLogging` + + +Function based session middleware +--------------------------------- + +.. code-block:: python + + async def __call__( + self, + make_request: NextRequestMiddlewareType[TelegramType], + bot: "Bot", + method: TelegramMethod[TelegramType], + ) -> Response[TelegramType]: + try: + # do something with request + return await make_request(bot, method) + finally: + # do something after request diff --git a/docs/api/types/animation.rst b/docs/api/types/animation.rst index 1d111c20..ee4f4875 100644 --- a/docs/api/types/animation.rst +++ b/docs/api/types/animation.rst @@ -7,3 +7,4 @@ Animation :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/audio.rst b/docs/api/types/audio.rst index e29b246c..a4f5a42a 100644 --- a/docs/api/types/audio.rst +++ b/docs/api/types/audio.rst @@ -7,3 +7,4 @@ Audio :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/bot_command.rst b/docs/api/types/bot_command.rst index 4b8c60ab..5b3307c8 100644 --- a/docs/api/types/bot_command.rst +++ b/docs/api/types/bot_command.rst @@ -7,3 +7,4 @@ BotCommand :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/bot_command_scope.rst b/docs/api/types/bot_command_scope.rst index fa89f3ab..82c404c6 100644 --- a/docs/api/types/bot_command_scope.rst +++ b/docs/api/types/bot_command_scope.rst @@ -7,3 +7,4 @@ BotCommandScope :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/bot_command_scope_all_chat_administrators.rst b/docs/api/types/bot_command_scope_all_chat_administrators.rst index cfde1f73..46110136 100644 --- a/docs/api/types/bot_command_scope_all_chat_administrators.rst +++ b/docs/api/types/bot_command_scope_all_chat_administrators.rst @@ -7,3 +7,4 @@ BotCommandScopeAllChatAdministrators :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/bot_command_scope_all_group_chats.rst b/docs/api/types/bot_command_scope_all_group_chats.rst index 2fe3ec7a..e191c5db 100644 --- a/docs/api/types/bot_command_scope_all_group_chats.rst +++ b/docs/api/types/bot_command_scope_all_group_chats.rst @@ -7,3 +7,4 @@ BotCommandScopeAllGroupChats :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/bot_command_scope_all_private_chats.rst b/docs/api/types/bot_command_scope_all_private_chats.rst index 4c018322..41cf2ff2 100644 --- a/docs/api/types/bot_command_scope_all_private_chats.rst +++ b/docs/api/types/bot_command_scope_all_private_chats.rst @@ -7,3 +7,4 @@ BotCommandScopeAllPrivateChats :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/bot_command_scope_chat.rst b/docs/api/types/bot_command_scope_chat.rst index ee7900fc..4f098f9e 100644 --- a/docs/api/types/bot_command_scope_chat.rst +++ b/docs/api/types/bot_command_scope_chat.rst @@ -7,3 +7,4 @@ BotCommandScopeChat :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/bot_command_scope_chat_administrators.rst b/docs/api/types/bot_command_scope_chat_administrators.rst index 76e72c45..b3cd9aa7 100644 --- a/docs/api/types/bot_command_scope_chat_administrators.rst +++ b/docs/api/types/bot_command_scope_chat_administrators.rst @@ -7,3 +7,4 @@ BotCommandScopeChatAdministrators :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/bot_command_scope_chat_member.rst b/docs/api/types/bot_command_scope_chat_member.rst index 60a76fa1..4e953111 100644 --- a/docs/api/types/bot_command_scope_chat_member.rst +++ b/docs/api/types/bot_command_scope_chat_member.rst @@ -7,3 +7,4 @@ BotCommandScopeChatMember :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/bot_command_scope_default.rst b/docs/api/types/bot_command_scope_default.rst index fe97331b..9a45c243 100644 --- a/docs/api/types/bot_command_scope_default.rst +++ b/docs/api/types/bot_command_scope_default.rst @@ -7,3 +7,4 @@ BotCommandScopeDefault :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/bot_description.rst b/docs/api/types/bot_description.rst index f3ea6d7a..16409cf3 100644 --- a/docs/api/types/bot_description.rst +++ b/docs/api/types/bot_description.rst @@ -7,3 +7,4 @@ BotDescription :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/bot_name.rst b/docs/api/types/bot_name.rst index 794667fa..2eb8fbf4 100644 --- a/docs/api/types/bot_name.rst +++ b/docs/api/types/bot_name.rst @@ -7,3 +7,4 @@ BotName :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/bot_short_description.rst b/docs/api/types/bot_short_description.rst index e9812e64..61dbbaea 100644 --- a/docs/api/types/bot_short_description.rst +++ b/docs/api/types/bot_short_description.rst @@ -7,3 +7,4 @@ BotShortDescription :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/callback_game.rst b/docs/api/types/callback_game.rst index 789519f3..8e5f32f1 100644 --- a/docs/api/types/callback_game.rst +++ b/docs/api/types/callback_game.rst @@ -7,3 +7,4 @@ CallbackGame :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/callback_query.rst b/docs/api/types/callback_query.rst index 22ddc99b..dee49c20 100644 --- a/docs/api/types/callback_query.rst +++ b/docs/api/types/callback_query.rst @@ -7,3 +7,4 @@ CallbackQuery :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/chat.rst b/docs/api/types/chat.rst index 5b506b1b..e473f6be 100644 --- a/docs/api/types/chat.rst +++ b/docs/api/types/chat.rst @@ -7,3 +7,4 @@ Chat :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/chat_administrator_rights.rst b/docs/api/types/chat_administrator_rights.rst index ef86eede..c728cc83 100644 --- a/docs/api/types/chat_administrator_rights.rst +++ b/docs/api/types/chat_administrator_rights.rst @@ -7,3 +7,4 @@ ChatAdministratorRights :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/chat_invite_link.rst b/docs/api/types/chat_invite_link.rst index d64e28ae..3ee3f9ea 100644 --- a/docs/api/types/chat_invite_link.rst +++ b/docs/api/types/chat_invite_link.rst @@ -7,3 +7,4 @@ ChatInviteLink :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/chat_join_request.rst b/docs/api/types/chat_join_request.rst index 236a472a..3ff695a8 100644 --- a/docs/api/types/chat_join_request.rst +++ b/docs/api/types/chat_join_request.rst @@ -7,3 +7,4 @@ ChatJoinRequest :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/chat_location.rst b/docs/api/types/chat_location.rst index 5d528095..74dff084 100644 --- a/docs/api/types/chat_location.rst +++ b/docs/api/types/chat_location.rst @@ -7,3 +7,4 @@ ChatLocation :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/chat_member.rst b/docs/api/types/chat_member.rst index bd357f7c..7cf71744 100644 --- a/docs/api/types/chat_member.rst +++ b/docs/api/types/chat_member.rst @@ -7,3 +7,4 @@ ChatMember :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/chat_member_administrator.rst b/docs/api/types/chat_member_administrator.rst index 55302054..f8c98c7b 100644 --- a/docs/api/types/chat_member_administrator.rst +++ b/docs/api/types/chat_member_administrator.rst @@ -7,3 +7,4 @@ ChatMemberAdministrator :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/chat_member_banned.rst b/docs/api/types/chat_member_banned.rst index 31570bec..95085cfc 100644 --- a/docs/api/types/chat_member_banned.rst +++ b/docs/api/types/chat_member_banned.rst @@ -7,3 +7,4 @@ ChatMemberBanned :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/chat_member_left.rst b/docs/api/types/chat_member_left.rst index 52a4dd9d..6f6d7e0d 100644 --- a/docs/api/types/chat_member_left.rst +++ b/docs/api/types/chat_member_left.rst @@ -7,3 +7,4 @@ ChatMemberLeft :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/chat_member_member.rst b/docs/api/types/chat_member_member.rst index 8f884af9..ec014bd2 100644 --- a/docs/api/types/chat_member_member.rst +++ b/docs/api/types/chat_member_member.rst @@ -7,3 +7,4 @@ ChatMemberMember :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/chat_member_owner.rst b/docs/api/types/chat_member_owner.rst index 09eee65c..3319823b 100644 --- a/docs/api/types/chat_member_owner.rst +++ b/docs/api/types/chat_member_owner.rst @@ -7,3 +7,4 @@ ChatMemberOwner :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/chat_member_restricted.rst b/docs/api/types/chat_member_restricted.rst index dcc3db58..65fdffa5 100644 --- a/docs/api/types/chat_member_restricted.rst +++ b/docs/api/types/chat_member_restricted.rst @@ -7,3 +7,4 @@ ChatMemberRestricted :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/chat_member_updated.rst b/docs/api/types/chat_member_updated.rst index e02ddd8b..f1ae6dd8 100644 --- a/docs/api/types/chat_member_updated.rst +++ b/docs/api/types/chat_member_updated.rst @@ -7,3 +7,4 @@ ChatMemberUpdated :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/chat_permissions.rst b/docs/api/types/chat_permissions.rst index 6eedb23b..934eb1c5 100644 --- a/docs/api/types/chat_permissions.rst +++ b/docs/api/types/chat_permissions.rst @@ -7,3 +7,4 @@ ChatPermissions :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/chat_photo.rst b/docs/api/types/chat_photo.rst index 7821d5ba..e1284cc1 100644 --- a/docs/api/types/chat_photo.rst +++ b/docs/api/types/chat_photo.rst @@ -7,3 +7,4 @@ ChatPhoto :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/chat_shared.rst b/docs/api/types/chat_shared.rst index fe6c4c4a..c180f114 100644 --- a/docs/api/types/chat_shared.rst +++ b/docs/api/types/chat_shared.rst @@ -7,3 +7,4 @@ ChatShared :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/chosen_inline_result.rst b/docs/api/types/chosen_inline_result.rst index 3f86a983..0519b88a 100644 --- a/docs/api/types/chosen_inline_result.rst +++ b/docs/api/types/chosen_inline_result.rst @@ -7,3 +7,4 @@ ChosenInlineResult :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/contact.rst b/docs/api/types/contact.rst index f99e1d27..152a6efc 100644 --- a/docs/api/types/contact.rst +++ b/docs/api/types/contact.rst @@ -7,3 +7,4 @@ Contact :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/dice.rst b/docs/api/types/dice.rst index 41ddf6c4..ba6309f4 100644 --- a/docs/api/types/dice.rst +++ b/docs/api/types/dice.rst @@ -7,3 +7,4 @@ Dice :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/document.rst b/docs/api/types/document.rst index 48799778..1d9a34d7 100644 --- a/docs/api/types/document.rst +++ b/docs/api/types/document.rst @@ -7,3 +7,4 @@ Document :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/encrypted_credentials.rst b/docs/api/types/encrypted_credentials.rst index 41425c95..7bce1366 100644 --- a/docs/api/types/encrypted_credentials.rst +++ b/docs/api/types/encrypted_credentials.rst @@ -7,3 +7,4 @@ EncryptedCredentials :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/encrypted_passport_element.rst b/docs/api/types/encrypted_passport_element.rst index 0acf7a8e..b5634dc5 100644 --- a/docs/api/types/encrypted_passport_element.rst +++ b/docs/api/types/encrypted_passport_element.rst @@ -7,3 +7,4 @@ EncryptedPassportElement :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/error_event.rst b/docs/api/types/error_event.rst deleted file mode 100644 index 77fae204..00000000 --- a/docs/api/types/error_event.rst +++ /dev/null @@ -1,9 +0,0 @@ -########## -ErrorEvent -########## - - -.. automodule:: aiogram.types.error_event - :members: - :member-order: bysource - :undoc-members: True diff --git a/docs/api/types/file.rst b/docs/api/types/file.rst index 5a9d920e..ab525e80 100644 --- a/docs/api/types/file.rst +++ b/docs/api/types/file.rst @@ -7,3 +7,4 @@ File :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/force_reply.rst b/docs/api/types/force_reply.rst index 326cd91f..a5f5d93c 100644 --- a/docs/api/types/force_reply.rst +++ b/docs/api/types/force_reply.rst @@ -7,3 +7,4 @@ ForceReply :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/forum_topic.rst b/docs/api/types/forum_topic.rst index fa5e99a6..ee38ae7b 100644 --- a/docs/api/types/forum_topic.rst +++ b/docs/api/types/forum_topic.rst @@ -7,3 +7,4 @@ ForumTopic :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/forum_topic_closed.rst b/docs/api/types/forum_topic_closed.rst index 200b19a5..97e8afde 100644 --- a/docs/api/types/forum_topic_closed.rst +++ b/docs/api/types/forum_topic_closed.rst @@ -7,3 +7,4 @@ ForumTopicClosed :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/forum_topic_created.rst b/docs/api/types/forum_topic_created.rst index 5eeb2382..63fc4a8f 100644 --- a/docs/api/types/forum_topic_created.rst +++ b/docs/api/types/forum_topic_created.rst @@ -7,3 +7,4 @@ ForumTopicCreated :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/forum_topic_edited.rst b/docs/api/types/forum_topic_edited.rst index 6909332f..d3d41960 100644 --- a/docs/api/types/forum_topic_edited.rst +++ b/docs/api/types/forum_topic_edited.rst @@ -7,3 +7,4 @@ ForumTopicEdited :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/forum_topic_reopened.rst b/docs/api/types/forum_topic_reopened.rst index 8803cf1f..a14b3877 100644 --- a/docs/api/types/forum_topic_reopened.rst +++ b/docs/api/types/forum_topic_reopened.rst @@ -7,3 +7,4 @@ ForumTopicReopened :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/game.rst b/docs/api/types/game.rst index 62a7f390..8ee3f03d 100644 --- a/docs/api/types/game.rst +++ b/docs/api/types/game.rst @@ -7,3 +7,4 @@ Game :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/game_high_score.rst b/docs/api/types/game_high_score.rst index 6f8d8194..64a2a751 100644 --- a/docs/api/types/game_high_score.rst +++ b/docs/api/types/game_high_score.rst @@ -7,3 +7,4 @@ GameHighScore :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/general_forum_topic_hidden.rst b/docs/api/types/general_forum_topic_hidden.rst index f83b143a..032d190a 100644 --- a/docs/api/types/general_forum_topic_hidden.rst +++ b/docs/api/types/general_forum_topic_hidden.rst @@ -7,3 +7,4 @@ GeneralForumTopicHidden :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/general_forum_topic_unhidden.rst b/docs/api/types/general_forum_topic_unhidden.rst index 9dee46cb..55764d2c 100644 --- a/docs/api/types/general_forum_topic_unhidden.rst +++ b/docs/api/types/general_forum_topic_unhidden.rst @@ -7,3 +7,4 @@ GeneralForumTopicUnhidden :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/index.rst b/docs/api/types/index.rst index 930e9354..20d71e22 100644 --- a/docs/api/types/index.rst +++ b/docs/api/types/index.rst @@ -123,6 +123,7 @@ Available types reply_keyboard_markup reply_keyboard_remove response_parameters + story switch_inline_query_chosen_chat user user_profile_photos diff --git a/docs/api/types/inline_keyboard_button.rst b/docs/api/types/inline_keyboard_button.rst index 1075ad01..43ca6325 100644 --- a/docs/api/types/inline_keyboard_button.rst +++ b/docs/api/types/inline_keyboard_button.rst @@ -7,3 +7,4 @@ InlineKeyboardButton :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_keyboard_markup.rst b/docs/api/types/inline_keyboard_markup.rst index b7c5108f..ff47ff06 100644 --- a/docs/api/types/inline_keyboard_markup.rst +++ b/docs/api/types/inline_keyboard_markup.rst @@ -7,3 +7,4 @@ InlineKeyboardMarkup :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query.rst b/docs/api/types/inline_query.rst index 7577b29c..437f0880 100644 --- a/docs/api/types/inline_query.rst +++ b/docs/api/types/inline_query.rst @@ -7,3 +7,4 @@ InlineQuery :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query_result.rst b/docs/api/types/inline_query_result.rst index ba3e265f..0caa7246 100644 --- a/docs/api/types/inline_query_result.rst +++ b/docs/api/types/inline_query_result.rst @@ -7,3 +7,4 @@ InlineQueryResult :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query_result_article.rst b/docs/api/types/inline_query_result_article.rst index 8ffb1db9..59c1c085 100644 --- a/docs/api/types/inline_query_result_article.rst +++ b/docs/api/types/inline_query_result_article.rst @@ -7,3 +7,4 @@ InlineQueryResultArticle :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query_result_audio.rst b/docs/api/types/inline_query_result_audio.rst index 50858460..58d5b640 100644 --- a/docs/api/types/inline_query_result_audio.rst +++ b/docs/api/types/inline_query_result_audio.rst @@ -7,3 +7,4 @@ InlineQueryResultAudio :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query_result_cached_audio.rst b/docs/api/types/inline_query_result_cached_audio.rst index bcce043d..9c9e83dd 100644 --- a/docs/api/types/inline_query_result_cached_audio.rst +++ b/docs/api/types/inline_query_result_cached_audio.rst @@ -7,3 +7,4 @@ InlineQueryResultCachedAudio :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query_result_cached_document.rst b/docs/api/types/inline_query_result_cached_document.rst index 0813734d..d6081dc9 100644 --- a/docs/api/types/inline_query_result_cached_document.rst +++ b/docs/api/types/inline_query_result_cached_document.rst @@ -7,3 +7,4 @@ InlineQueryResultCachedDocument :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query_result_cached_gif.rst b/docs/api/types/inline_query_result_cached_gif.rst index d1103a55..e38a0305 100644 --- a/docs/api/types/inline_query_result_cached_gif.rst +++ b/docs/api/types/inline_query_result_cached_gif.rst @@ -7,3 +7,4 @@ InlineQueryResultCachedGif :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query_result_cached_mpeg4_gif.rst b/docs/api/types/inline_query_result_cached_mpeg4_gif.rst index 022ce1ca..f073b73e 100644 --- a/docs/api/types/inline_query_result_cached_mpeg4_gif.rst +++ b/docs/api/types/inline_query_result_cached_mpeg4_gif.rst @@ -7,3 +7,4 @@ InlineQueryResultCachedMpeg4Gif :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query_result_cached_photo.rst b/docs/api/types/inline_query_result_cached_photo.rst index 3fcd27bc..c75f6d34 100644 --- a/docs/api/types/inline_query_result_cached_photo.rst +++ b/docs/api/types/inline_query_result_cached_photo.rst @@ -7,3 +7,4 @@ InlineQueryResultCachedPhoto :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query_result_cached_sticker.rst b/docs/api/types/inline_query_result_cached_sticker.rst index 30a5d5b3..d0e965a8 100644 --- a/docs/api/types/inline_query_result_cached_sticker.rst +++ b/docs/api/types/inline_query_result_cached_sticker.rst @@ -7,3 +7,4 @@ InlineQueryResultCachedSticker :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query_result_cached_video.rst b/docs/api/types/inline_query_result_cached_video.rst index 0c5acbe9..a7a7b130 100644 --- a/docs/api/types/inline_query_result_cached_video.rst +++ b/docs/api/types/inline_query_result_cached_video.rst @@ -7,3 +7,4 @@ InlineQueryResultCachedVideo :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query_result_cached_voice.rst b/docs/api/types/inline_query_result_cached_voice.rst index 5b4f0d8e..95dbe44a 100644 --- a/docs/api/types/inline_query_result_cached_voice.rst +++ b/docs/api/types/inline_query_result_cached_voice.rst @@ -7,3 +7,4 @@ InlineQueryResultCachedVoice :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query_result_contact.rst b/docs/api/types/inline_query_result_contact.rst index 123b4d61..ca3f74bc 100644 --- a/docs/api/types/inline_query_result_contact.rst +++ b/docs/api/types/inline_query_result_contact.rst @@ -7,3 +7,4 @@ InlineQueryResultContact :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query_result_document.rst b/docs/api/types/inline_query_result_document.rst index 6352c6c3..d5e03940 100644 --- a/docs/api/types/inline_query_result_document.rst +++ b/docs/api/types/inline_query_result_document.rst @@ -7,3 +7,4 @@ InlineQueryResultDocument :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query_result_game.rst b/docs/api/types/inline_query_result_game.rst index 562c1974..4f57d322 100644 --- a/docs/api/types/inline_query_result_game.rst +++ b/docs/api/types/inline_query_result_game.rst @@ -7,3 +7,4 @@ InlineQueryResultGame :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query_result_gif.rst b/docs/api/types/inline_query_result_gif.rst index 552252de..54628ab6 100644 --- a/docs/api/types/inline_query_result_gif.rst +++ b/docs/api/types/inline_query_result_gif.rst @@ -7,3 +7,4 @@ InlineQueryResultGif :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query_result_location.rst b/docs/api/types/inline_query_result_location.rst index fcde9fb2..7f637827 100644 --- a/docs/api/types/inline_query_result_location.rst +++ b/docs/api/types/inline_query_result_location.rst @@ -7,3 +7,4 @@ InlineQueryResultLocation :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query_result_mpeg4_gif.rst b/docs/api/types/inline_query_result_mpeg4_gif.rst index ccdfb06f..80144e82 100644 --- a/docs/api/types/inline_query_result_mpeg4_gif.rst +++ b/docs/api/types/inline_query_result_mpeg4_gif.rst @@ -7,3 +7,4 @@ InlineQueryResultMpeg4Gif :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query_result_photo.rst b/docs/api/types/inline_query_result_photo.rst index 4af41c8e..e36c6b01 100644 --- a/docs/api/types/inline_query_result_photo.rst +++ b/docs/api/types/inline_query_result_photo.rst @@ -7,3 +7,4 @@ InlineQueryResultPhoto :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query_result_venue.rst b/docs/api/types/inline_query_result_venue.rst index b3c40c01..ea0b5331 100644 --- a/docs/api/types/inline_query_result_venue.rst +++ b/docs/api/types/inline_query_result_venue.rst @@ -7,3 +7,4 @@ InlineQueryResultVenue :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query_result_video.rst b/docs/api/types/inline_query_result_video.rst index e27f6be3..b767f746 100644 --- a/docs/api/types/inline_query_result_video.rst +++ b/docs/api/types/inline_query_result_video.rst @@ -7,3 +7,4 @@ InlineQueryResultVideo :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query_result_voice.rst b/docs/api/types/inline_query_result_voice.rst index 4496c4fe..fc648e0a 100644 --- a/docs/api/types/inline_query_result_voice.rst +++ b/docs/api/types/inline_query_result_voice.rst @@ -7,3 +7,4 @@ InlineQueryResultVoice :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/inline_query_results_button.rst b/docs/api/types/inline_query_results_button.rst index c4b1fc05..75903af3 100644 --- a/docs/api/types/inline_query_results_button.rst +++ b/docs/api/types/inline_query_results_button.rst @@ -7,3 +7,4 @@ InlineQueryResultsButton :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/input_contact_message_content.rst b/docs/api/types/input_contact_message_content.rst index a3100b83..ea3ae3f0 100644 --- a/docs/api/types/input_contact_message_content.rst +++ b/docs/api/types/input_contact_message_content.rst @@ -7,3 +7,4 @@ InputContactMessageContent :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/input_file.rst b/docs/api/types/input_file.rst index 4197e6cd..1cb8fa16 100644 --- a/docs/api/types/input_file.rst +++ b/docs/api/types/input_file.rst @@ -7,3 +7,4 @@ InputFile :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/input_invoice_message_content.rst b/docs/api/types/input_invoice_message_content.rst index f5d7a0ab..f08e8fff 100644 --- a/docs/api/types/input_invoice_message_content.rst +++ b/docs/api/types/input_invoice_message_content.rst @@ -7,3 +7,4 @@ InputInvoiceMessageContent :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/input_location_message_content.rst b/docs/api/types/input_location_message_content.rst index 6ca59b0b..8c79a76c 100644 --- a/docs/api/types/input_location_message_content.rst +++ b/docs/api/types/input_location_message_content.rst @@ -7,3 +7,4 @@ InputLocationMessageContent :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/input_media.rst b/docs/api/types/input_media.rst index 9b3f386b..f2bbb471 100644 --- a/docs/api/types/input_media.rst +++ b/docs/api/types/input_media.rst @@ -7,3 +7,4 @@ InputMedia :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/input_media_animation.rst b/docs/api/types/input_media_animation.rst index 9c00494b..eb6b2754 100644 --- a/docs/api/types/input_media_animation.rst +++ b/docs/api/types/input_media_animation.rst @@ -7,3 +7,4 @@ InputMediaAnimation :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/input_media_audio.rst b/docs/api/types/input_media_audio.rst index c12d307c..f44b52c7 100644 --- a/docs/api/types/input_media_audio.rst +++ b/docs/api/types/input_media_audio.rst @@ -7,3 +7,4 @@ InputMediaAudio :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/input_media_document.rst b/docs/api/types/input_media_document.rst index 645b78e7..4dc1eca0 100644 --- a/docs/api/types/input_media_document.rst +++ b/docs/api/types/input_media_document.rst @@ -7,3 +7,4 @@ InputMediaDocument :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/input_media_photo.rst b/docs/api/types/input_media_photo.rst index 32656e29..d78d91ef 100644 --- a/docs/api/types/input_media_photo.rst +++ b/docs/api/types/input_media_photo.rst @@ -7,3 +7,4 @@ InputMediaPhoto :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/input_media_video.rst b/docs/api/types/input_media_video.rst index 57099c51..c6b84be0 100644 --- a/docs/api/types/input_media_video.rst +++ b/docs/api/types/input_media_video.rst @@ -7,3 +7,4 @@ InputMediaVideo :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/input_message_content.rst b/docs/api/types/input_message_content.rst index 84040fb7..c79c4c6c 100644 --- a/docs/api/types/input_message_content.rst +++ b/docs/api/types/input_message_content.rst @@ -7,3 +7,4 @@ InputMessageContent :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/input_sticker.rst b/docs/api/types/input_sticker.rst index 176a0e15..e235697d 100644 --- a/docs/api/types/input_sticker.rst +++ b/docs/api/types/input_sticker.rst @@ -7,3 +7,4 @@ InputSticker :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/input_text_message_content.rst b/docs/api/types/input_text_message_content.rst index 1eb83e54..b019fb5d 100644 --- a/docs/api/types/input_text_message_content.rst +++ b/docs/api/types/input_text_message_content.rst @@ -7,3 +7,4 @@ InputTextMessageContent :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/input_venue_message_content.rst b/docs/api/types/input_venue_message_content.rst index 479a99a0..6288d78a 100644 --- a/docs/api/types/input_venue_message_content.rst +++ b/docs/api/types/input_venue_message_content.rst @@ -7,3 +7,4 @@ InputVenueMessageContent :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/invoice.rst b/docs/api/types/invoice.rst index 24ecc961..e5582e52 100644 --- a/docs/api/types/invoice.rst +++ b/docs/api/types/invoice.rst @@ -7,3 +7,4 @@ Invoice :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/keyboard_button.rst b/docs/api/types/keyboard_button.rst index 9faca06d..b67d22fa 100644 --- a/docs/api/types/keyboard_button.rst +++ b/docs/api/types/keyboard_button.rst @@ -7,3 +7,4 @@ KeyboardButton :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/keyboard_button_poll_type.rst b/docs/api/types/keyboard_button_poll_type.rst index 9a4974a5..c15f6e1f 100644 --- a/docs/api/types/keyboard_button_poll_type.rst +++ b/docs/api/types/keyboard_button_poll_type.rst @@ -7,3 +7,4 @@ KeyboardButtonPollType :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/keyboard_button_request_chat.rst b/docs/api/types/keyboard_button_request_chat.rst index b47f1a8b..083bbd55 100644 --- a/docs/api/types/keyboard_button_request_chat.rst +++ b/docs/api/types/keyboard_button_request_chat.rst @@ -7,3 +7,4 @@ KeyboardButtonRequestChat :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/keyboard_button_request_user.rst b/docs/api/types/keyboard_button_request_user.rst index f216668a..fe5be538 100644 --- a/docs/api/types/keyboard_button_request_user.rst +++ b/docs/api/types/keyboard_button_request_user.rst @@ -7,3 +7,4 @@ KeyboardButtonRequestUser :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/labeled_price.rst b/docs/api/types/labeled_price.rst index a76b28f3..da5ccabb 100644 --- a/docs/api/types/labeled_price.rst +++ b/docs/api/types/labeled_price.rst @@ -7,3 +7,4 @@ LabeledPrice :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/location.rst b/docs/api/types/location.rst index 2957683a..e6fa6bf0 100644 --- a/docs/api/types/location.rst +++ b/docs/api/types/location.rst @@ -7,3 +7,4 @@ Location :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/login_url.rst b/docs/api/types/login_url.rst index f72b28b6..3caae33d 100644 --- a/docs/api/types/login_url.rst +++ b/docs/api/types/login_url.rst @@ -7,3 +7,4 @@ LoginUrl :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/mask_position.rst b/docs/api/types/mask_position.rst index 74c28494..d53f7598 100644 --- a/docs/api/types/mask_position.rst +++ b/docs/api/types/mask_position.rst @@ -7,3 +7,4 @@ MaskPosition :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/menu_button.rst b/docs/api/types/menu_button.rst index 44eeb4c3..a1ab0d8b 100644 --- a/docs/api/types/menu_button.rst +++ b/docs/api/types/menu_button.rst @@ -7,3 +7,4 @@ MenuButton :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/menu_button_commands.rst b/docs/api/types/menu_button_commands.rst index 66614b04..f5662136 100644 --- a/docs/api/types/menu_button_commands.rst +++ b/docs/api/types/menu_button_commands.rst @@ -7,3 +7,4 @@ MenuButtonCommands :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/menu_button_default.rst b/docs/api/types/menu_button_default.rst index f114387c..6594f436 100644 --- a/docs/api/types/menu_button_default.rst +++ b/docs/api/types/menu_button_default.rst @@ -7,3 +7,4 @@ MenuButtonDefault :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/menu_button_web_app.rst b/docs/api/types/menu_button_web_app.rst index bf5c0806..f65948fd 100644 --- a/docs/api/types/menu_button_web_app.rst +++ b/docs/api/types/menu_button_web_app.rst @@ -7,3 +7,4 @@ MenuButtonWebApp :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/message.rst b/docs/api/types/message.rst index 5e1be4f7..90ce74ca 100644 --- a/docs/api/types/message.rst +++ b/docs/api/types/message.rst @@ -7,3 +7,4 @@ Message :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/message_auto_delete_timer_changed.rst b/docs/api/types/message_auto_delete_timer_changed.rst index 102caacc..80d3f7db 100644 --- a/docs/api/types/message_auto_delete_timer_changed.rst +++ b/docs/api/types/message_auto_delete_timer_changed.rst @@ -7,3 +7,4 @@ MessageAutoDeleteTimerChanged :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/message_entity.rst b/docs/api/types/message_entity.rst index 38ee737d..15d9e15c 100644 --- a/docs/api/types/message_entity.rst +++ b/docs/api/types/message_entity.rst @@ -7,3 +7,4 @@ MessageEntity :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/message_id.rst b/docs/api/types/message_id.rst index 2ed2adc6..55f15959 100644 --- a/docs/api/types/message_id.rst +++ b/docs/api/types/message_id.rst @@ -7,3 +7,4 @@ MessageId :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/order_info.rst b/docs/api/types/order_info.rst index 6180f709..5529a607 100644 --- a/docs/api/types/order_info.rst +++ b/docs/api/types/order_info.rst @@ -7,3 +7,4 @@ OrderInfo :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/passport_data.rst b/docs/api/types/passport_data.rst index 9a3de684..eea326bb 100644 --- a/docs/api/types/passport_data.rst +++ b/docs/api/types/passport_data.rst @@ -7,3 +7,4 @@ PassportData :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/passport_element_error.rst b/docs/api/types/passport_element_error.rst index 8fc30e86..24e16dd0 100644 --- a/docs/api/types/passport_element_error.rst +++ b/docs/api/types/passport_element_error.rst @@ -7,3 +7,4 @@ PassportElementError :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/passport_element_error_data_field.rst b/docs/api/types/passport_element_error_data_field.rst index b9382471..08e75bc1 100644 --- a/docs/api/types/passport_element_error_data_field.rst +++ b/docs/api/types/passport_element_error_data_field.rst @@ -7,3 +7,4 @@ PassportElementErrorDataField :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/passport_element_error_file.rst b/docs/api/types/passport_element_error_file.rst index 877def6a..7d209266 100644 --- a/docs/api/types/passport_element_error_file.rst +++ b/docs/api/types/passport_element_error_file.rst @@ -7,3 +7,4 @@ PassportElementErrorFile :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/passport_element_error_files.rst b/docs/api/types/passport_element_error_files.rst index 922b4ffb..9d9f5585 100644 --- a/docs/api/types/passport_element_error_files.rst +++ b/docs/api/types/passport_element_error_files.rst @@ -7,3 +7,4 @@ PassportElementErrorFiles :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/passport_element_error_front_side.rst b/docs/api/types/passport_element_error_front_side.rst index 3f7dfe81..c72e9b87 100644 --- a/docs/api/types/passport_element_error_front_side.rst +++ b/docs/api/types/passport_element_error_front_side.rst @@ -7,3 +7,4 @@ PassportElementErrorFrontSide :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/passport_element_error_reverse_side.rst b/docs/api/types/passport_element_error_reverse_side.rst index dd61c9a1..a9147a70 100644 --- a/docs/api/types/passport_element_error_reverse_side.rst +++ b/docs/api/types/passport_element_error_reverse_side.rst @@ -7,3 +7,4 @@ PassportElementErrorReverseSide :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/passport_element_error_selfie.rst b/docs/api/types/passport_element_error_selfie.rst index d3463191..ed452899 100644 --- a/docs/api/types/passport_element_error_selfie.rst +++ b/docs/api/types/passport_element_error_selfie.rst @@ -7,3 +7,4 @@ PassportElementErrorSelfie :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/passport_element_error_translation_file.rst b/docs/api/types/passport_element_error_translation_file.rst index 3a0e16aa..68e3417b 100644 --- a/docs/api/types/passport_element_error_translation_file.rst +++ b/docs/api/types/passport_element_error_translation_file.rst @@ -7,3 +7,4 @@ PassportElementErrorTranslationFile :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/passport_element_error_translation_files.rst b/docs/api/types/passport_element_error_translation_files.rst index 9ac03422..5102b071 100644 --- a/docs/api/types/passport_element_error_translation_files.rst +++ b/docs/api/types/passport_element_error_translation_files.rst @@ -7,3 +7,4 @@ PassportElementErrorTranslationFiles :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/passport_element_error_unspecified.rst b/docs/api/types/passport_element_error_unspecified.rst index ec90bed9..6510d51e 100644 --- a/docs/api/types/passport_element_error_unspecified.rst +++ b/docs/api/types/passport_element_error_unspecified.rst @@ -7,3 +7,4 @@ PassportElementErrorUnspecified :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/passport_file.rst b/docs/api/types/passport_file.rst index 4c737fff..1a2dcd56 100644 --- a/docs/api/types/passport_file.rst +++ b/docs/api/types/passport_file.rst @@ -7,3 +7,4 @@ PassportFile :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/photo_size.rst b/docs/api/types/photo_size.rst index 1086588c..3605b912 100644 --- a/docs/api/types/photo_size.rst +++ b/docs/api/types/photo_size.rst @@ -7,3 +7,4 @@ PhotoSize :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/poll.rst b/docs/api/types/poll.rst index fd11bc88..294b323b 100644 --- a/docs/api/types/poll.rst +++ b/docs/api/types/poll.rst @@ -7,3 +7,4 @@ Poll :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/poll_answer.rst b/docs/api/types/poll_answer.rst index fe92fb6a..680cc75e 100644 --- a/docs/api/types/poll_answer.rst +++ b/docs/api/types/poll_answer.rst @@ -7,3 +7,4 @@ PollAnswer :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/poll_option.rst b/docs/api/types/poll_option.rst index 72ebfbd2..b85634e0 100644 --- a/docs/api/types/poll_option.rst +++ b/docs/api/types/poll_option.rst @@ -7,3 +7,4 @@ PollOption :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/pre_checkout_query.rst b/docs/api/types/pre_checkout_query.rst index 418c11b9..8f330051 100644 --- a/docs/api/types/pre_checkout_query.rst +++ b/docs/api/types/pre_checkout_query.rst @@ -7,3 +7,4 @@ PreCheckoutQuery :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/proximity_alert_triggered.rst b/docs/api/types/proximity_alert_triggered.rst index 98ac7d2f..16a47c11 100644 --- a/docs/api/types/proximity_alert_triggered.rst +++ b/docs/api/types/proximity_alert_triggered.rst @@ -7,3 +7,4 @@ ProximityAlertTriggered :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/reply_keyboard_markup.rst b/docs/api/types/reply_keyboard_markup.rst index a5c5ae85..01c040ee 100644 --- a/docs/api/types/reply_keyboard_markup.rst +++ b/docs/api/types/reply_keyboard_markup.rst @@ -7,3 +7,4 @@ ReplyKeyboardMarkup :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/reply_keyboard_remove.rst b/docs/api/types/reply_keyboard_remove.rst index 799ad3a9..b54b06f7 100644 --- a/docs/api/types/reply_keyboard_remove.rst +++ b/docs/api/types/reply_keyboard_remove.rst @@ -7,3 +7,4 @@ ReplyKeyboardRemove :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/response_parameters.rst b/docs/api/types/response_parameters.rst index 5b7056b8..31ae0c34 100644 --- a/docs/api/types/response_parameters.rst +++ b/docs/api/types/response_parameters.rst @@ -7,3 +7,4 @@ ResponseParameters :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/sent_web_app_message.rst b/docs/api/types/sent_web_app_message.rst index 1a7d2084..a8563b8d 100644 --- a/docs/api/types/sent_web_app_message.rst +++ b/docs/api/types/sent_web_app_message.rst @@ -7,3 +7,4 @@ SentWebAppMessage :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/shipping_address.rst b/docs/api/types/shipping_address.rst index 0421c58e..6eb704f8 100644 --- a/docs/api/types/shipping_address.rst +++ b/docs/api/types/shipping_address.rst @@ -7,3 +7,4 @@ ShippingAddress :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/shipping_option.rst b/docs/api/types/shipping_option.rst index 28e13897..e5f57874 100644 --- a/docs/api/types/shipping_option.rst +++ b/docs/api/types/shipping_option.rst @@ -7,3 +7,4 @@ ShippingOption :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/shipping_query.rst b/docs/api/types/shipping_query.rst index c4ccdf70..761a2f52 100644 --- a/docs/api/types/shipping_query.rst +++ b/docs/api/types/shipping_query.rst @@ -7,3 +7,4 @@ ShippingQuery :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/sticker.rst b/docs/api/types/sticker.rst index f15dd9ef..3f69a389 100644 --- a/docs/api/types/sticker.rst +++ b/docs/api/types/sticker.rst @@ -7,3 +7,4 @@ Sticker :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/sticker_set.rst b/docs/api/types/sticker_set.rst index a25e064f..9f50ef1d 100644 --- a/docs/api/types/sticker_set.rst +++ b/docs/api/types/sticker_set.rst @@ -7,3 +7,4 @@ StickerSet :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/story.rst b/docs/api/types/story.rst new file mode 100644 index 00000000..68565b39 --- /dev/null +++ b/docs/api/types/story.rst @@ -0,0 +1,10 @@ +##### +Story +##### + + +.. automodule:: aiogram.types.story + :members: + :member-order: bysource + :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/successful_payment.rst b/docs/api/types/successful_payment.rst index f21f860b..ed882b60 100644 --- a/docs/api/types/successful_payment.rst +++ b/docs/api/types/successful_payment.rst @@ -7,3 +7,4 @@ SuccessfulPayment :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/switch_inline_query_chosen_chat.rst b/docs/api/types/switch_inline_query_chosen_chat.rst index 961534d6..0934367d 100644 --- a/docs/api/types/switch_inline_query_chosen_chat.rst +++ b/docs/api/types/switch_inline_query_chosen_chat.rst @@ -7,3 +7,4 @@ SwitchInlineQueryChosenChat :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/update.rst b/docs/api/types/update.rst index 5419da6e..b789cb3d 100644 --- a/docs/api/types/update.rst +++ b/docs/api/types/update.rst @@ -7,3 +7,4 @@ Update :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/user.rst b/docs/api/types/user.rst index b13f8808..92a0bf32 100644 --- a/docs/api/types/user.rst +++ b/docs/api/types/user.rst @@ -7,3 +7,4 @@ User :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/user_profile_photos.rst b/docs/api/types/user_profile_photos.rst index b6cce934..29bf9a88 100644 --- a/docs/api/types/user_profile_photos.rst +++ b/docs/api/types/user_profile_photos.rst @@ -7,3 +7,4 @@ UserProfilePhotos :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/user_shared.rst b/docs/api/types/user_shared.rst index 55713049..6a485188 100644 --- a/docs/api/types/user_shared.rst +++ b/docs/api/types/user_shared.rst @@ -7,3 +7,4 @@ UserShared :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/venue.rst b/docs/api/types/venue.rst index 75a71fff..1827dd18 100644 --- a/docs/api/types/venue.rst +++ b/docs/api/types/venue.rst @@ -7,3 +7,4 @@ Venue :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/video.rst b/docs/api/types/video.rst index 0478b3f7..a2a2c032 100644 --- a/docs/api/types/video.rst +++ b/docs/api/types/video.rst @@ -7,3 +7,4 @@ Video :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/video_chat_ended.rst b/docs/api/types/video_chat_ended.rst index aed8b7a9..6edfb158 100644 --- a/docs/api/types/video_chat_ended.rst +++ b/docs/api/types/video_chat_ended.rst @@ -7,3 +7,4 @@ VideoChatEnded :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/video_chat_participants_invited.rst b/docs/api/types/video_chat_participants_invited.rst index 9ca905bd..8812311f 100644 --- a/docs/api/types/video_chat_participants_invited.rst +++ b/docs/api/types/video_chat_participants_invited.rst @@ -7,3 +7,4 @@ VideoChatParticipantsInvited :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/video_chat_scheduled.rst b/docs/api/types/video_chat_scheduled.rst index 0d5f8c45..e612af51 100644 --- a/docs/api/types/video_chat_scheduled.rst +++ b/docs/api/types/video_chat_scheduled.rst @@ -7,3 +7,4 @@ VideoChatScheduled :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/video_chat_started.rst b/docs/api/types/video_chat_started.rst index 5d59a22e..a58fb47e 100644 --- a/docs/api/types/video_chat_started.rst +++ b/docs/api/types/video_chat_started.rst @@ -7,3 +7,4 @@ VideoChatStarted :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/video_note.rst b/docs/api/types/video_note.rst index b9d308e5..ad0912a6 100644 --- a/docs/api/types/video_note.rst +++ b/docs/api/types/video_note.rst @@ -7,3 +7,4 @@ VideoNote :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/voice.rst b/docs/api/types/voice.rst index 7d58722d..c963205a 100644 --- a/docs/api/types/voice.rst +++ b/docs/api/types/voice.rst @@ -7,3 +7,4 @@ Voice :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/web_app_data.rst b/docs/api/types/web_app_data.rst index 1a94573f..e4369a88 100644 --- a/docs/api/types/web_app_data.rst +++ b/docs/api/types/web_app_data.rst @@ -7,3 +7,4 @@ WebAppData :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/web_app_info.rst b/docs/api/types/web_app_info.rst index b21f0aea..6ebfad64 100644 --- a/docs/api/types/web_app_info.rst +++ b/docs/api/types/web_app_info.rst @@ -7,3 +7,4 @@ WebAppInfo :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/webhook_info.rst b/docs/api/types/webhook_info.rst index 259a01bc..7194b726 100644 --- a/docs/api/types/webhook_info.rst +++ b/docs/api/types/webhook_info.rst @@ -7,3 +7,4 @@ WebhookInfo :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/api/types/write_access_allowed.rst b/docs/api/types/write_access_allowed.rst index d2afa3bc..62fa76d6 100644 --- a/docs/api/types/write_access_allowed.rst +++ b/docs/api/types/write_access_allowed.rst @@ -7,3 +7,4 @@ WriteAccessAllowed :members: :member-order: bysource :undoc-members: True + :exclude-members: model_config,model_fields diff --git a/docs/conf.py b/docs/conf.py index 1c89245d..583a1922 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -28,7 +28,6 @@ extensions = [ "sphinx.ext.autodoc", "sphinx.ext.ifconfig", "sphinx.ext.intersphinx", - "sphinx-prompt", "sphinx_substitution_extensions", "sphinx_copybutton", "sphinxcontrib.towncrier.ext", @@ -67,6 +66,6 @@ texinfo_documents = [ # add_module_names = False -towncrier_draft_autoversion_mode = 'draft' +towncrier_draft_autoversion_mode = "draft" towncrier_draft_include_empty = False towncrier_draft_working_directory = Path(__file__).parent.parent diff --git a/docs/contributing.rst b/docs/contributing.rst index 3feda269..a4a3b8e0 100644 --- a/docs/contributing.rst +++ b/docs/contributing.rst @@ -35,34 +35,33 @@ be able to install packages into that isolated environment. Activate the environment ------------------------ -Linux/ macOS: +Linux / macOS: .. code-block:: bash source .venv/bin/activate -Windows PoweShell +Windows cmd -.. code-block:: powershell +.. code-block:: text - .\.venv\Scripts\Activate.ps1 - -To check it worked, use described command, it should show the :code:`pip` location inside -the isolated environment - -Linux, macOS: - -.. code-block:: - - which pip + .\.venv\Scripts\activate Windows PowerShell +.. code-block:: powershell + + .\.venv\Scripts\activate.ps1 + +To check it worked, use described command, it should show the :code:`pip` version and location +inside the isolated environment + .. code-block:: - Get-Command pip + pip -V -Also make you shure you have the latest pip version in your virtual environment to avoid + +Also make sure you have the latest pip version in your virtual environment to avoid errors on next steps: .. code-block:: @@ -73,7 +72,15 @@ errors on next steps: Setup project ------------- -After activating the environment install `aiogram` from sources and their dependencies: +After activating the environment install `aiogram` from sources and their dependencies. + +Linux / macOS: + +.. code-block:: bash + + pip install -e ."[dev,test,docs,fast,redis,proxy,i18n]" + +Windows: .. code-block:: bash @@ -209,5 +216,4 @@ it is my personal initiative (`@JRootJunior `_) and I am engaged in the development of the project in my free time. So, if you want to financially support the project, or, for example, give me a pizza or a beer, -you can do it on `OpenCollective `_ -or `Patreon `_. +you can do it on `OpenCollective `_. diff --git a/docs/dispatcher/class_based_handlers/base.rst b/docs/dispatcher/class_based_handlers/base.rst index 0d478224..8c694d4f 100644 --- a/docs/dispatcher/class_based_handlers/base.rst +++ b/docs/dispatcher/class_based_handlers/base.rst @@ -6,15 +6,15 @@ BaseHandler Base handler is generic abstract class and should be used in all other class-based handlers. -Import: :code:`from aiogram.handler import BaseHandler` +Import: :code:`from aiogram.handlers import BaseHandler` By default you will need to override only method :code:`async def handle(self) -> Any: ...` -This class is also have an default initializer and you don't need to change it. -Initializer accepts current event and all contextual data and which +This class also has a default initializer and you don't need to change it. +The initializer accepts the incoming event and all contextual data, which can be accessed from the handler through attributes: :code:`event: TelegramEvent` and :code:`data: Dict[Any, str]` -If instance of the bot is specified in context data or current context it can be accessed through *bot* class attribute. +If an instance of the bot is specified in context data or current context it can be accessed through *bot* class attribute. Example ======= diff --git a/docs/dispatcher/class_based_handlers/message.rst b/docs/dispatcher/class_based_handlers/message.rst index 1945e8ba..27629901 100644 --- a/docs/dispatcher/class_based_handlers/message.rst +++ b/docs/dispatcher/class_based_handlers/message.rst @@ -21,7 +21,7 @@ Simple usage Extension ========= -This base handler is subclass of [BaseHandler](basics.md#basehandler) with some extensions: +This base handler is subclass of :ref:`BaseHandler ` with some extensions: - :code:`self.chat` is alias for :code:`self.event.chat` - :code:`self.from_user` is alias for :code:`self.event.from_user` diff --git a/docs/dispatcher/dependency_injection.rst b/docs/dispatcher/dependency_injection.rst new file mode 100644 index 00000000..0e7af388 --- /dev/null +++ b/docs/dispatcher/dependency_injection.rst @@ -0,0 +1,72 @@ +#################### +Dependency injection +#################### + +Dependency injection is a programming technique that makes a class independent of its dependencies. +It achieves that by decoupling the usage of an object from its creation. +This helps you to follow `SOLID's `_ dependency +inversion and single responsibility principles. + + +How it works in aiogram +======================= + +For each update :class:`aiogram.dispatcher.dispatcher.Dispatcher` passes handling context data. +Filters and middleware can also make changes to the context. + +To access contextual data you should specify corresponding keyword parameter in handler or filter. +For example, to get :class:`aiogram.fsm.context.FSMContext` we do it like that: + +.. code-block:: python + + @router.message(ProfileCompletion.add_photo, F.photo) + async def add_photo( + message: types.Message, bot: Bot, state: FSMContext + ) -> Any: + ... # do something with photo + + +Injecting own dependencies +========================== + +Aiogram provides several ways to complement / modify contextual data. + +The first and easiest way is to simply specify the named arguments in +:class:`aiogram.dispatcher.dispatcher.Dispatcher` initialization, polling start methods +or :class:`aiogram.webhook.aiohttp_server.SimpleRequestHandler` initialization if you use webhooks. + +.. code-block:: python + + async def main() -> None: + dp = Dispatcher(..., foo=42) + return await dp.start_polling( + bot, bar="Bazz" + ) + +Analogy for webhook: + +.. code-block:: python + + async def main() -> None: + dp = Dispatcher(..., foo=42) + handler = SimpleRequestHandler(dispatcher=dp, bot=bot, bar="Bazz") + ... # starting webhook + +:class:`aiogram.dispatcher.dispatcher.Dispatcher`'s workflow data also can be supplemented +by setting values as in a dictionary: + +.. code-block:: python + + dp = Dispatcher(...) + dp["eggs"] = Spam() + +The middlewares updates the context quite often. +You can read more about them on this page: + +- :ref:`Middlewares ` + +The last way is to return a dictionary from the filter: + +.. literalinclude:: ../../examples/context_addition_from_filter.py + +...or using :ref:`MagicFilter ` with :code:`.as_(...)` method. diff --git a/docs/dispatcher/dispatcher.rst b/docs/dispatcher/dispatcher.rst index d7403a66..2bb192de 100644 --- a/docs/dispatcher/dispatcher.rst +++ b/docs/dispatcher/dispatcher.rst @@ -4,14 +4,14 @@ Dispatcher Dispatcher is root :obj:`Router` and in code Dispatcher can be used directly for routing updates or attach another routers into dispatcher. -Here is only listed base information about Dispatcher. All about writing handlers, filters and etc. you can found in next pages: +Here is only listed base information about Dispatcher. All about writing handlers, filters and etc. you can find in next pages: -- `Router `__ -- `Observer `__ +- :ref:`Router ` +- :ref:`Filtering events` .. autoclass:: aiogram.dispatcher.dispatcher.Dispatcher - :members: __init__, feed_update, feed_raw_update, feed_webhook_update, start_polling, run_polling + :members: __init__, feed_update, feed_raw_update, feed_webhook_update, start_polling, run_polling, stop_polling Simple usage diff --git a/docs/dispatcher/errors.rst b/docs/dispatcher/errors.rst new file mode 100644 index 00000000..ace9a81b --- /dev/null +++ b/docs/dispatcher/errors.rst @@ -0,0 +1,49 @@ +###### +Errors +###### + + +Handling errors +=============== + +Is recommended way that you should use errors inside handlers using try-except block, +but in common cases you can use global errors handler at router or dispatcher level. + +If you specify errors handler for router - it will be used for all handlers inside this router. + +If you specify errors handler for dispatcher - it will be used for all handlers inside all routers. + +.. code-block:: python + + @router.error(ExceptionTypeFilter(MyCustomException), F.update.message.as_("message")) + async def handle_my_custom_exception(event: ErrorEvent, message: Message): + # do something with error + await message.answer("Oops, something went wrong!") + + + @router.error() + async def error_handler(event: ErrorEvent): + logger.critical("Critical error caused by %s", event.exception, exc_info=True) + # do something with error + ... + + +.. _error-event: + +ErrorEvent +========== + +.. automodule:: aiogram.types.error_event + :members: + :member-order: bysource + :undoc-members: True + :exclude-members: model_config,model_fields + +.. _error-types: + +Error types +=========== + +.. automodule:: aiogram.exceptions + :members: + :member-order: bysource diff --git a/docs/dispatcher/filters/callback_data.rst b/docs/dispatcher/filters/callback_data.rst index d2273c05..161e092e 100644 --- a/docs/dispatcher/filters/callback_data.rst +++ b/docs/dispatcher/filters/callback_data.rst @@ -1,3 +1,5 @@ +.. _Callback data factory: + ============================== Callback Data Factory & Filter ============================== @@ -6,6 +8,7 @@ Callback Data Factory & Filter :members: :member-order: bysource :undoc-members: False + :exclude-members: model_config,model_fields Usage ===== diff --git a/docs/dispatcher/filters/chat_member_updated.rst b/docs/dispatcher/filters/chat_member_updated.rst index 6b2fff00..356fba1d 100644 --- a/docs/dispatcher/filters/chat_member_updated.rst +++ b/docs/dispatcher/filters/chat_member_updated.rst @@ -2,6 +2,27 @@ ChatMemberUpdated ================= +Usage +===== + +Handle user leave or join events + +.. code-block:: python + + from aiogram.filters import IS_MEMBER, IS_NOT_MEMBER + + @router.chat_member(ChatMemberUpdatedFilter(IS_MEMBER >> IS_NOT_MEMBER)) + async def on_user_leave(event: ChatMemberUpdated): ... + + @router.chat_member(ChatMemberUpdatedFilter(IS_NOT_MEMBER >> IS_MEMBER)) + async def on_user_join(event: ChatMemberUpdated): ... + +Or construct your own terms via using pre-defined set of statuses and transitions. + + +Explanation +=========== + .. autoclass:: aiogram.filters.chat_member_updated.ChatMemberUpdatedFilter :members: :member-order: bysource @@ -77,22 +98,6 @@ will produce swap of old and new statuses. Note that if you define the status unions (via :code:`|`) you will need to add brackets for the statement before use shift operator in due to operator priorities. -Usage -===== - -Handle user leave or join events - -.. code-block:: python - - from aiogram.filters import IS_MEMBER, IS_NOT_MEMBER - - @router.chat_member(ChatMemberUpdatedFilter(IS_MEMBER >> IS_NOT_MEMBER)) - async def on_user_leave(event: ChatMemberUpdated): ... - - @router.chat_member(ChatMemberUpdatedFilter(IS_NOT_MEMBER >> IS_MEMBER)) - async def on_user_join(event: ChatMemberUpdated): ... - -Or construct your own terms via using pre-defined set of statuses and transitions. Allowed handlers ================ diff --git a/docs/dispatcher/filters/command.rst b/docs/dispatcher/filters/command.rst index e926c081..00fe83c3 100644 --- a/docs/dispatcher/filters/command.rst +++ b/docs/dispatcher/filters/command.rst @@ -2,19 +2,6 @@ Command ======= -.. autoclass:: aiogram.filters.command.Command - :members: __init__ - :member-order: bysource - :undoc-members: False - -When filter is passed the :class:`aiogram.filters.command.CommandObject` will be passed to the handler argument :code:`command` - -.. autoclass:: aiogram.filters.command.CommandObject - :members: - :member-order: bysource - :undoc-members: False - - Usage ===== @@ -28,6 +15,19 @@ Usage Command cannot include spaces or any whitespace + +.. autoclass:: aiogram.filters.command.Command + :members: __init__ + :member-order: bysource + :undoc-members: False + +When filter is passed the :class:`aiogram.filters.command.CommandObject` will be passed to the handler argument :code:`command` + +.. autoclass:: aiogram.filters.command.CommandObject + :members: + :member-order: bysource + :undoc-members: False + Allowed handlers ================ diff --git a/docs/dispatcher/filters/index.rst b/docs/dispatcher/filters/index.rst index 9ac14213..795cb4f3 100644 --- a/docs/dispatcher/filters/index.rst +++ b/docs/dispatcher/filters/index.rst @@ -1,11 +1,14 @@ +.. _Filtering events: + ================ Filtering events ================ Filters is needed for routing updates to the specific handler. Searching of handler is always stops on first match set of filters are pass. +By default, all handlers has empty set of filters, so all updates will be passed to first handler that has empty set of filters. -*aiogram* has some builtin useful filters. +*aiogram* has some builtin useful filters or you can write own filters. Builtin filters =============== diff --git a/docs/dispatcher/filters/magic_data.rst b/docs/dispatcher/filters/magic_data.rst index 55255e5c..68637e06 100644 --- a/docs/dispatcher/filters/magic_data.rst +++ b/docs/dispatcher/filters/magic_data.rst @@ -2,6 +2,14 @@ MagicData ========= +Usage +===== + +#. :code:`MagicData(F.event.from_user.id == F.config.admin_id)` (Note that :code:`config` should be passed from middleware) + +Explanation +=========== + .. autoclass:: aiogram.filters.magic_data.MagicData :members: :member-order: bysource @@ -11,11 +19,6 @@ Can be imported: - :code:`from aiogram.filters import MagicData` -Usage -===== - -#. :code:`MagicData(F.event.from_user.id == F.config.admin_id)` (Note that :code:`config` should be passed from middleware) - Allowed handlers ================ diff --git a/docs/dispatcher/finite_state_machine/index.rst b/docs/dispatcher/finite_state_machine/index.rst index 353d5f75..afa62bff 100644 --- a/docs/dispatcher/finite_state_machine/index.rst +++ b/docs/dispatcher/finite_state_machine/index.rst @@ -1,3 +1,5 @@ +.. _Finite State Machine: + ==================== Finite State Machine ==================== diff --git a/docs/dispatcher/index.rst b/docs/dispatcher/index.rst index c684ba36..daf7e1e5 100644 --- a/docs/dispatcher/index.rst +++ b/docs/dispatcher/index.rst @@ -15,13 +15,23 @@ With dispatcher you can do: Dispatcher is also separated into two entities - Router and Dispatcher. Dispatcher is subclass of router and should be always is root router. +Telegram supports two ways of receiving updates: + +- :ref:`Webhook ` - you should configure your web server to receive updates from Telegram; +- :ref:`Long polling ` - you should request updates from Telegram. + +So, you can use both of them with *aiogram*. + .. toctree:: - observer router dispatcher - class_based_handlers/index + dependency_injection filters/index - middlewares + long_polling + webhook finite_state_machine/index + middlewares + errors flags + class_based_handlers/index diff --git a/docs/dispatcher/long_polling.rst b/docs/dispatcher/long_polling.rst new file mode 100644 index 00000000..c261ed35 --- /dev/null +++ b/docs/dispatcher/long_polling.rst @@ -0,0 +1,32 @@ +.. _long-polling: + +############ +Long-polling +############ + +Long-polling is a technology that allows a Telegram server to send updates in case +when you don't have dedicated IP address or port to receive webhooks for example +on a developer machine. + +To use long-polling mode you should use :meth:`aiogram.dispatcher.dispatcher.Dispatcher.start_polling` +or :meth:`aiogram.dispatcher.dispatcher.Dispatcher.run_polling` methods. + +.. note:: + + You can use polling from only one polling process per single Bot token, + in other case Telegram server will return an error. + +.. note:: + + If you will need to scale your bot, you should use webhooks instead of long-polling. + +.. note:: + + If you will use multibot mode, you should use webhook mode for all bots. + +Example +======= + +This example will show you how to create simple echo bot based on long-polling. + +.. literalinclude:: ../../examples/echo_bot.py diff --git a/docs/dispatcher/middlewares.rst b/docs/dispatcher/middlewares.rst index 55875eb2..c63c6709 100644 --- a/docs/dispatcher/middlewares.rst +++ b/docs/dispatcher/middlewares.rst @@ -1,3 +1,5 @@ +.. _middlewares: + =========== Middlewares =========== @@ -57,7 +59,8 @@ Examples .. danger:: - Middleware should always call :code:`await handler(event, data)` to propagate event for next middleware/handler + Middleware should always call :code:`await handler(event, data)` to propagate event for next middleware/handler. + If you want to stop processing event in middleware you should not call :code:`await handler(event, data)`. Class-based diff --git a/docs/dispatcher/observer.rst b/docs/dispatcher/observer.rst deleted file mode 100644 index 9276dcc4..00000000 --- a/docs/dispatcher/observer.rst +++ /dev/null @@ -1,26 +0,0 @@ -######## -Observer -######## - -Observer is used for filtering and handling different events. That is part of internal API with some public methods and is recommended to don't use methods is not listed here. - -In `aiogram` framework is available two variants of observer: - -- `EventObserver <#eventobserver>`__ -- `TelegramEventObserver <#telegrameventobserver>`__ - - -EventObserver -============= - -.. autoclass:: aiogram.dispatcher.event.event.EventObserver - :members: register, trigger, __call__ - :member-order: bysource - - -TelegramEventObserver -===================== - -.. autoclass:: aiogram.dispatcher.event.telegram.TelegramEventObserver - :members: register, trigger, __call__, bind_filter, middleware, outer_middleware - :member-order: bysource diff --git a/docs/dispatcher/router.rst b/docs/dispatcher/router.rst index 40d91769..44eb748e 100644 --- a/docs/dispatcher/router.rst +++ b/docs/dispatcher/router.rst @@ -1,12 +1,30 @@ +.. _Router: + ###### Router ###### +Usage: + +.. code-block:: python + + from aiogram import Router + from aiogram.types import Message + + my_router = Router(name=__name__) + + @my_router.message() + async def message_handler(message: Message) -> Any: + await message.answer('Hello from my router!') + + .. autoclass:: aiogram.dispatcher.router.Router - :members: __init__, include_router + :members: __init__, include_router, include_routers, resolve_used_update_types :show-inheritance: +.. _Event observers: + Event observers =============== @@ -19,19 +37,6 @@ Here is the list of available observers and examples of how to register handlers In these examples only decorator-style registering handlers are used, but if you don't like @decorators just use :obj:`.register(...)` method instead. -Update ------- - -.. code-block:: python - - @router.update() - async def message_handler(update: types.Update) -> Any: pass - -.. note:: - - By default Router already has an update handler which route all event types to another observers. - - Message ------- @@ -143,9 +148,12 @@ Errors @router.errors() async def error_handler(exception: ErrorEvent) -> Any: pass -Is useful for handling errors from other handlers +Is useful for handling errors from other handlers, error event described :ref:`here ` + +.. _Nested routers: + Nested routers ============== @@ -159,8 +167,8 @@ Nested routers Example: .. code-block:: python - :caption: module_2.py - :name: module_2 + :caption: module_1.py + :name: module_1 router2 = Router() @@ -170,7 +178,7 @@ Example: .. code-block:: python :caption: module_2.py - :name: module_1 + :name: module_2 from module_2 import router2 @@ -179,6 +187,22 @@ Example: router1.include_router(router2) +Update +------ + +.. code-block:: python + + @dispatcher.update() + async def message_handler(update: types.Update) -> Any: pass + +.. warning:: + + The only root Router (Dispatcher) can handle this type of event. + +.. note:: + + Dispatcher already has default handler for this event type, so you can use it for handling all updates that are not handled by any other handlers. + How it works? ------------- diff --git a/docs/dispatcher/webhook.rst b/docs/dispatcher/webhook.rst new file mode 100644 index 00000000..ec2612ff --- /dev/null +++ b/docs/dispatcher/webhook.rst @@ -0,0 +1,125 @@ +.. _webhook: + +####### +Webhook +####### + +Telegram Bot API supports webhook. +If you set webhook for your bot, Telegram will send updates to the specified url. +You can use :meth:`aiogram.methods.set_webhook.SetWebhook` method to specify a url +and receive incoming updates on it. + +.. note:: + + If you use webhook, you can't use long polling at the same time. + +Before start i'll recommend you to read `official Telegram's documentation about webhook `_ + +After you read it, you can start to read this section. + +Generally to use webhook with aiogram you should use any async web framework. +By out of the box aiogram has an aiohttp integration, so we'll use it. + +.. note:: + + You can use any async web framework you want, but you should write your own integration if you don't use aiohttp. + + +aiohttp integration +=================== + +Out of the box aiogram has aiohttp integration, so you can use it. + +Here is available few ways to do it using different implementations of the webhook controller: + +- :class:`aiogram.webhook.aiohttp_server.BaseRequestHandler` - Abstract class for aiohttp webhook controller +- :class:`aiogram.webhook.aiohttp_server.SimpleRequestHandler` - Simple webhook controller, uses single Bot instance +- :class:`aiogram.webhook.aiohttp_server.TokenBasedRequestHandler` - Token based webhook controller, uses multiple Bot instances and tokens + +You can use it as is or inherit from it and override some methods. + +.. autoclass:: aiogram.webhook.aiohttp_server.BaseRequestHandler + :members: __init__, register, close, resolve_bot, verify_secret, handle + +.. autoclass:: aiogram.webhook.aiohttp_server.SimpleRequestHandler + :members: __init__, register, close, resolve_bot, verify_secret, handle + +.. autoclass:: aiogram.webhook.aiohttp_server.TokenBasedRequestHandler + :members: __init__, register, close, resolve_bot, verify_secret, handle + +Security +-------- + +Telegram supports two methods to verify incoming requests that they are from Telegram: + +Using a secret token +~~~~~~~~~~~~~~~~~~~~ + +When you set webhook, you can specify a secret token and then use it to verify incoming requests. + +Using IP filtering +~~~~~~~~~~~~~~~~~~ + +You can specify a list of IP addresses from which you expect incoming requests, and then use it to verify incoming requests. + +It can be acy using firewall rules or nginx configuration or middleware on application level. + +So, aiogram has an implementation of the IP filtering middleware for aiohttp. + +.. autofunction:: aiogram.webhook.aiohttp_server.ip_filter_middleware + +.. autoclass:: aiogram.webhook.security.IPFilter + :members: __init__, allow, allow_ip, default, check + +Examples +-------- + +Behind reverse proxy +~~~~~~~~~~~~~~~~~~~~ + +In this example we'll use aiohttp as web framework and nginx as reverse proxy. + +.. literalinclude:: ../../examples/echo_bot_webhook.py + +When you use nginx as reverse proxy, you should set `proxy_pass` to your aiohttp server address. + +.. code-block:: nginx + + location /webhook { + proxy_set_header Host $http_host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_redirect off; + proxy_buffering off; + proxy_pass http://127.0.0.1:8080; + } + + +Without reverse proxy (not recommended) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In case without using reverse proxy, you can use aiohttp's ssl context. + +Also this example contains usage with self-signed certificate. + +.. literalinclude:: ../../examples/echo_bot_webhook_ssl.py + + +With using other web framework +============================== + +You can pass incoming request to aiogram's webhook controller from any web framework you want. + +Read more about it in :meth:`aiogram.dispatcher.dispatcher.Dispatcher.feed_webhook_update` +or :meth:`aiogram.dispatcher.dispatcher.Dispatcher.feed_update` methods. + +.. code-block:: python + + update = Update.model_validate(await request.json(), context={"bot": bot}) + await dispatcher.feed_update(update) + + +.. note:: + + If you want to use reply into webhook, you should check that result of the :code:`feed_update` + methods is an instance of API method and build :code:`multipart/form-data` + or :code:`application/json` response body manually. diff --git a/docs/index.rst b/docs/index.rst index d6ffb067..6be454e7 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -12,6 +12,7 @@ Contents :maxdepth: 3 install + migration_2_to_3 api/index dispatcher/index utils/index diff --git a/docs/install.rst b/docs/install.rst index 7dbf3cf8..71a71705 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -2,9 +2,6 @@ Installation ############ -Stable (2.x) -============ - From PyPI --------- @@ -27,7 +24,7 @@ From PyPI .. code-block:: bash - pip install -U --pre aiogram + pip install -U aiogram From GitHub ----------- @@ -35,10 +32,3 @@ From GitHub .. code-block:: bash pip install https://github.com/aiogram/aiogram/archive/refs/heads/dev-3.x.zip - -From AUR --------- - -.. code-block:: bash - - yay -S python-aiogram3 diff --git a/docs/locale/en/LC_MESSAGES/api/bot.po b/docs/locale/en/LC_MESSAGES/api/bot.po deleted file mode 100644 index 0a7dbcc9..00000000 --- a/docs/locale/en/LC_MESSAGES/api/bot.po +++ /dev/null @@ -1,148 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-07 23:01+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/bot.rst:3 -msgid "Bot" -msgstr "" - -#: ../../api/bot.rst:5 -msgid "" -"Bot instance can be created from :code:`aiogram.Bot` (:code:`from aiogram" -" import Bot`) and you can't use methods without instance of bot with " -"configured token." -msgstr "" - -#: ../../api/bot.rst:8 -msgid "" -"This class has aliases for all methods and named in " -":code:`lower_camel_case`." -msgstr "" - -#: ../../api/bot.rst:10 -msgid "" -"For example :code:`sendMessage` named :code:`send_message` and has the " -"same specification with all class-based methods." -msgstr "" - -#: ../../api/bot.rst:14 -msgid "" -"A full list of methods can be found in the appropriate section of the " -"documentation" -msgstr "" - -#: aiogram.client.bot.Bot:1 of -msgid "" -"Bases: :py:class:`~aiogram.utils.mixins.ContextInstanceMixin`\\ " -"[:py:class:`Bot`]" -msgstr "" - -#: aiogram.client.bot.Bot.__init__:1 of -msgid "Bot class" -msgstr "" - -#: aiogram.client.bot.Bot.__init__ aiogram.client.bot.Bot.context -#: aiogram.client.bot.Bot.download aiogram.client.bot.Bot.download_file of -msgid "Parameters" -msgstr "" - -#: aiogram.client.bot.Bot.__init__:3 of -msgid "Telegram Bot token `Obtained from @BotFather `_" -msgstr "" - -#: aiogram.client.bot.Bot.__init__:4 of -msgid "" -"HTTP Client session (For example AiohttpSession). If not specified it " -"will be automatically created." -msgstr "" - -#: aiogram.client.bot.Bot.__init__:6 of -msgid "" -"Default parse mode. If specified it will be propagated into the API " -"methods at runtime." -msgstr "" - -#: aiogram.client.bot.Bot.__init__ of -msgid "Raises" -msgstr "" - -#: aiogram.client.bot.Bot.__init__:8 of -msgid "When token has invalid format this exception will be raised" -msgstr "" - -#: aiogram.client.bot.Bot.id:1 of -msgid "Get bot ID from token" -msgstr "" - -#: aiogram.client.bot.Bot.context aiogram.client.bot.Bot.id -#: aiogram.client.bot.Bot.me of -msgid "Returns" -msgstr "" - -#: aiogram.client.bot.Bot.context:1 of -msgid "Generate bot context" -msgstr "" - -#: aiogram.client.bot.Bot.me:1 of -msgid "Cached alias for getMe method" -msgstr "" - -#: aiogram.client.bot.Bot.download_file:1 of -msgid "Download file by file_path to destination." -msgstr "" - -#: aiogram.client.bot.Bot.download:3 aiogram.client.bot.Bot.download_file:3 of -msgid "" -"If you want to automatically create destination (:class:`io.BytesIO`) use" -" default value of destination and handle result of this method." -msgstr "" - -#: aiogram.client.bot.Bot.download_file:6 of -msgid "" -"File path on Telegram server (You can get it from " -":obj:`aiogram.types.File`)" -msgstr "" - -#: aiogram.client.bot.Bot.download:7 aiogram.client.bot.Bot.download_file:7 of -msgid "" -"Filename, file path or instance of :class:`io.IOBase`. For e.g. " -":class:`io.BytesIO`, defaults to None" -msgstr "" - -#: aiogram.client.bot.Bot.download:8 aiogram.client.bot.Bot.download_file:8 of -msgid "Total timeout in seconds, defaults to 30" -msgstr "" - -#: aiogram.client.bot.Bot.download:9 aiogram.client.bot.Bot.download_file:9 of -msgid "File chunks size, defaults to 64 kb" -msgstr "" - -#: aiogram.client.bot.Bot.download:10 aiogram.client.bot.Bot.download_file:10 -#: of -msgid "" -"Go to start of file when downloading is finished. Used only for " -"destination with :class:`typing.BinaryIO` type, defaults to True" -msgstr "" - -#: aiogram.client.bot.Bot.download:1 of -msgid "Download file by file_id or Downloadable object to destination." -msgstr "" - -#: aiogram.client.bot.Bot.download:6 of -msgid "file_id or Downloadable object" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/download_file.po b/docs/locale/en/LC_MESSAGES/api/download_file.po deleted file mode 100644 index bcd3ec0f..00000000 --- a/docs/locale/en/LC_MESSAGES/api/download_file.po +++ /dev/null @@ -1,187 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/download_file.rst:3 -msgid "How to download file?" -msgstr "" - -#: ../../api/download_file.rst:6 -msgid "Download file manually" -msgstr "" - -#: ../../api/download_file.rst:8 -msgid "" -"First, you must get the `file_id` of the file you want to download. " -"Information about files sent to the bot is contained in `Message " -"`__." -msgstr "" - -#: ../../api/download_file.rst:11 -msgid "For example, download the document that came to the bot." -msgstr "" - -#: ../../api/download_file.rst:17 -msgid "" -"Then use the `getFile `__ method to get " -"`file_path`." -msgstr "" - -#: ../../api/download_file.rst:24 -msgid "" -"After that, use the `download_file <#download-file>`__ method from the " -"bot object." -msgstr "" - -#: ../../api/download_file.rst:27 -msgid "download_file(...)" -msgstr "" - -#: ../../api/download_file.rst:29 -msgid "Download file by `file_path` to destination." -msgstr "" - -#: ../../api/download_file.rst:31 ../../api/download_file.rst:81 -msgid "" -"If you want to automatically create destination (:obj:`io.BytesIO`) use " -"default value of destination and handle result of this method." -msgstr "" - -#: aiogram.client.bot.Bot.download_file:1 of -msgid "Download file by file_path to destination." -msgstr "" - -#: aiogram.client.bot.Bot.download:3 aiogram.client.bot.Bot.download_file:3 of -msgid "" -"If you want to automatically create destination (:class:`io.BytesIO`) use" -" default value of destination and handle result of this method." -msgstr "" - -#: aiogram.client.bot.Bot.download aiogram.client.bot.Bot.download_file of -msgid "Parameters" -msgstr "" - -#: aiogram.client.bot.Bot.download_file:6 of -msgid "" -"File path on Telegram server (You can get it from " -":obj:`aiogram.types.File`)" -msgstr "" - -#: aiogram.client.bot.Bot.download:7 aiogram.client.bot.Bot.download_file:7 of -msgid "" -"Filename, file path or instance of :class:`io.IOBase`. For e.g. " -":class:`io.BytesIO`, defaults to None" -msgstr "" - -#: aiogram.client.bot.Bot.download:8 aiogram.client.bot.Bot.download_file:8 of -msgid "Total timeout in seconds, defaults to 30" -msgstr "" - -#: aiogram.client.bot.Bot.download:9 aiogram.client.bot.Bot.download_file:9 of -msgid "File chunks size, defaults to 64 kb" -msgstr "" - -#: aiogram.client.bot.Bot.download:10 aiogram.client.bot.Bot.download_file:10 -#: of -msgid "" -"Go to start of file when downloading is finished. Used only for " -"destination with :class:`typing.BinaryIO` type, defaults to True" -msgstr "" - -#: ../../api/download_file.rst:38 -msgid "" -"There are two options where you can download the file: to **disk** or to " -"**binary I/O object**." -msgstr "" - -#: ../../api/download_file.rst:41 -msgid "Download file to disk" -msgstr "" - -#: ../../api/download_file.rst:43 -msgid "" -"To download file to disk, you must specify the file name or path where to" -" download the file. In this case, the function will return nothing." -msgstr "" - -#: ../../api/download_file.rst:51 -msgid "Download file to binary I/O object" -msgstr "" - -#: ../../api/download_file.rst:53 -msgid "" -"To download file to binary I/O object, you must specify an object with " -"the :obj:`typing.BinaryIO` type or use the default (:obj:`None`) value." -msgstr "" - -#: ../../api/download_file.rst:56 -msgid "In the first case, the function will return your object:" -msgstr "" - -#: ../../api/download_file.rst:64 -msgid "" -"If you leave the default value, an :obj:`io.BytesIO` object will be " -"created and returned." -msgstr "" - -#: ../../api/download_file.rst:72 -msgid "Download file in short way" -msgstr "" - -#: ../../api/download_file.rst:74 -msgid "" -"Getting `file_path` manually every time is boring, so you should use the " -"`download <#download>`__ method." -msgstr "" - -#: ../../api/download_file.rst:77 -msgid "download(...)" -msgstr "" - -#: ../../api/download_file.rst:79 -msgid "Download file by `file_id` or `Downloadable` object to destination." -msgstr "" - -#: aiogram.client.bot.Bot.download:1 of -msgid "Download file by file_id or Downloadable object to destination." -msgstr "" - -#: aiogram.client.bot.Bot.download:6 of -msgid "file_id or Downloadable object" -msgstr "" - -#: ../../api/download_file.rst:88 -msgid "" -"It differs from `download_file <#download-file>`__ **only** in that it " -"accepts `file_id` or an `Downloadable` object (object that contains the " -"`file_id` attribute) instead of `file_path`." -msgstr "" - -#: ../../api/download_file.rst:91 -msgid "" -"You can download a file to `disk <#download-file-to-disk>`__ or to a " -"`binary I/O <#download-file-to-binary-io-object>`__ object in the same " -"way." -msgstr "" - -#: ../../api/download_file.rst:93 -msgid "Example:" -msgstr "" - -#~ msgid "Bot class" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/enums/bot_command_scope_type.po b/docs/locale/en/LC_MESSAGES/api/enums/bot_command_scope_type.po deleted file mode 100644 index 2d7153f4..00000000 --- a/docs/locale/en/LC_MESSAGES/api/enums/bot_command_scope_type.po +++ /dev/null @@ -1,30 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/enums/bot_command_scope_type.rst:3 -msgid "BotCommandScopeType" -msgstr "" - -#: aiogram.enums.bot_command_scope_type.BotCommandScopeType:1 of -msgid "This object represents the scope to which bot commands are applied." -msgstr "" - -#: aiogram.enums.bot_command_scope_type.BotCommandScopeType:3 of -msgid "Source: https://core.telegram.org/bots/api#botcommandscope" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/enums/chat_action.po b/docs/locale/en/LC_MESSAGES/api/enums/chat_action.po deleted file mode 100644 index 0ba8fec1..00000000 --- a/docs/locale/en/LC_MESSAGES/api/enums/chat_action.po +++ /dev/null @@ -1,66 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/enums/chat_action.rst:3 -msgid "ChatAction" -msgstr "" - -#: aiogram.enums.chat_action.ChatAction:1 of -msgid "This object represents bot actions." -msgstr "" - -#: aiogram.enums.chat_action.ChatAction:3 of -msgid "Choose one, depending on what the user is about to receive:" -msgstr "" - -#: aiogram.enums.chat_action.ChatAction:5 of -msgid "typing for text messages," -msgstr "" - -#: aiogram.enums.chat_action.ChatAction:6 of -msgid "upload_photo for photos," -msgstr "" - -#: aiogram.enums.chat_action.ChatAction:7 of -msgid "record_video or upload_video for videos," -msgstr "" - -#: aiogram.enums.chat_action.ChatAction:8 of -msgid "record_voice or upload_voice for voice notes," -msgstr "" - -#: aiogram.enums.chat_action.ChatAction:9 of -msgid "upload_document for general files," -msgstr "" - -#: aiogram.enums.chat_action.ChatAction:10 of -msgid "choose_sticker for stickers," -msgstr "" - -#: aiogram.enums.chat_action.ChatAction:11 of -msgid "find_location for location data," -msgstr "" - -#: aiogram.enums.chat_action.ChatAction:12 of -msgid "record_video_note or upload_video_note for video notes." -msgstr "" - -#: aiogram.enums.chat_action.ChatAction:14 of -msgid "Source: https://core.telegram.org/bots/api#sendchataction" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/enums/chat_member_status.po b/docs/locale/en/LC_MESSAGES/api/enums/chat_member_status.po deleted file mode 100644 index d5455e57..00000000 --- a/docs/locale/en/LC_MESSAGES/api/enums/chat_member_status.po +++ /dev/null @@ -1,30 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/enums/chat_member_status.rst:3 -msgid "ChatMemberStatus" -msgstr "" - -#: aiogram.enums.chat_member_status.ChatMemberStatus:1 of -msgid "This object represents chat member status." -msgstr "" - -#: aiogram.enums.chat_member_status.ChatMemberStatus:3 of -msgid "Source: https://core.telegram.org/bots/api#chatmember" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/enums/content_type.po b/docs/locale/en/LC_MESSAGES/api/enums/content_type.po deleted file mode 100644 index b8d27ec9..00000000 --- a/docs/locale/en/LC_MESSAGES/api/enums/content_type.po +++ /dev/null @@ -1,26 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/enums/content_type.rst:3 -msgid "ContentType" -msgstr "" - -#: aiogram.enums.content_type.ContentType:1 of -msgid "This object represents a type of content in message" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/enums/dice_emoji.po b/docs/locale/en/LC_MESSAGES/api/enums/dice_emoji.po deleted file mode 100644 index eacb9567..00000000 --- a/docs/locale/en/LC_MESSAGES/api/enums/dice_emoji.po +++ /dev/null @@ -1,30 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/enums/dice_emoji.rst:3 -msgid "DiceEmoji" -msgstr "" - -#: aiogram.enums.dice_emoji.DiceEmoji:1 of -msgid "Emoji on which the dice throw animation is based" -msgstr "" - -#: aiogram.enums.dice_emoji.DiceEmoji:3 of -msgid "Source: https://core.telegram.org/bots/api#dice" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/enums/index.po b/docs/locale/en/LC_MESSAGES/api/enums/index.po deleted file mode 100644 index ad64f7f1..00000000 --- a/docs/locale/en/LC_MESSAGES/api/enums/index.po +++ /dev/null @@ -1,29 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/enums/index.rst:3 -msgid "Enums" -msgstr "" - -#: ../../api/enums/index.rst:5 -msgid "Here is list of all available enums:" -msgstr "" - -#~ msgid "Types" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/enums/inline_query_result_type.po b/docs/locale/en/LC_MESSAGES/api/enums/inline_query_result_type.po deleted file mode 100644 index b5a7a240..00000000 --- a/docs/locale/en/LC_MESSAGES/api/enums/inline_query_result_type.po +++ /dev/null @@ -1,36 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/enums/inline_query_result_type.rst:3 -msgid "InlineQueryResultType" -msgstr "" - -#: aiogram.enums.inline_query_result_type.InlineQueryResultType:1 of -msgid "Type of inline query result" -msgstr "" - -#: aiogram.enums.inline_query_result_type.InlineQueryResultType:3 of -msgid "Source: https://core.telegram.org/bots/api#inlinequeryresult" -msgstr "" - -#~ msgid "The part of the face relative to which the mask should be placed." -#~ msgstr "" - -#~ msgid "Source: https://core.telegram.org/bots/api#maskposition" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/enums/input_media_type.po b/docs/locale/en/LC_MESSAGES/api/enums/input_media_type.po deleted file mode 100644 index 2115e592..00000000 --- a/docs/locale/en/LC_MESSAGES/api/enums/input_media_type.po +++ /dev/null @@ -1,30 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/enums/input_media_type.rst:3 -msgid "InputMediaType" -msgstr "" - -#: aiogram.enums.input_media_type.InputMediaType:1 of -msgid "This object represents input media type" -msgstr "" - -#: aiogram.enums.input_media_type.InputMediaType:3 of -msgid "Source: https://core.telegram.org/bots/api#inputmedia" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/enums/mask_position_point.po b/docs/locale/en/LC_MESSAGES/api/enums/mask_position_point.po deleted file mode 100644 index fde3a771..00000000 --- a/docs/locale/en/LC_MESSAGES/api/enums/mask_position_point.po +++ /dev/null @@ -1,30 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/enums/mask_position_point.rst:3 -msgid "MaskPositionPoint" -msgstr "" - -#: aiogram.enums.mask_position_point.MaskPositionPoint:1 of -msgid "The part of the face relative to which the mask should be placed." -msgstr "" - -#: aiogram.enums.mask_position_point.MaskPositionPoint:3 of -msgid "Source: https://core.telegram.org/bots/api#maskposition" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/enums/menu_button_type.po b/docs/locale/en/LC_MESSAGES/api/enums/menu_button_type.po deleted file mode 100644 index d7c0adc8..00000000 --- a/docs/locale/en/LC_MESSAGES/api/enums/menu_button_type.po +++ /dev/null @@ -1,30 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/enums/menu_button_type.rst:3 -msgid "MenuButtonType" -msgstr "" - -#: aiogram.enums.menu_button_type.MenuButtonType:1 of -msgid "This object represents an type of Menu button" -msgstr "" - -#: aiogram.enums.menu_button_type.MenuButtonType:3 of -msgid "Source: https://core.telegram.org/bots/api#menubuttondefault" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/enums/message_entity_type.po b/docs/locale/en/LC_MESSAGES/api/enums/message_entity_type.po deleted file mode 100644 index 3704373b..00000000 --- a/docs/locale/en/LC_MESSAGES/api/enums/message_entity_type.po +++ /dev/null @@ -1,30 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/enums/message_entity_type.rst:3 -msgid "MessageEntityType" -msgstr "" - -#: aiogram.enums.message_entity_type.MessageEntityType:1 of -msgid "This object represents type of message entity" -msgstr "" - -#: aiogram.enums.message_entity_type.MessageEntityType:3 of -msgid "Source: https://core.telegram.org/bots/api#messageentity" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/enums/parse_mode.po b/docs/locale/en/LC_MESSAGES/api/enums/parse_mode.po deleted file mode 100644 index cc565d5d..00000000 --- a/docs/locale/en/LC_MESSAGES/api/enums/parse_mode.po +++ /dev/null @@ -1,30 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/enums/parse_mode.rst:3 -msgid "ParseMode" -msgstr "" - -#: aiogram.enums.parse_mode.ParseMode:1 of -msgid "Formatting options" -msgstr "" - -#: aiogram.enums.parse_mode.ParseMode:3 of -msgid "Source: https://core.telegram.org/bots/api#formatting-options" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/enums/poll_type.po b/docs/locale/en/LC_MESSAGES/api/enums/poll_type.po deleted file mode 100644 index 42d2ab15..00000000 --- a/docs/locale/en/LC_MESSAGES/api/enums/poll_type.po +++ /dev/null @@ -1,30 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/enums/poll_type.rst:3 -msgid "PollType" -msgstr "" - -#: aiogram.enums.poll_type.PollType:1 of -msgid "This object represents poll type" -msgstr "" - -#: aiogram.enums.poll_type.PollType:3 of -msgid "Source: https://core.telegram.org/bots/api#poll" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/enums/sticker_type.po b/docs/locale/en/LC_MESSAGES/api/enums/sticker_type.po deleted file mode 100644 index 41da8cbb..00000000 --- a/docs/locale/en/LC_MESSAGES/api/enums/sticker_type.po +++ /dev/null @@ -1,30 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 23:19+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/enums/sticker_type.rst:3 -msgid "StickerType" -msgstr "" - -#: aiogram.enums.sticker_type.StickerType:1 of -msgid "The part of the face relative to which the mask should be placed." -msgstr "" - -#: aiogram.enums.sticker_type.StickerType:3 of -msgid "Source: https://core.telegram.org/bots/api#maskposition" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/enums/topic_icon_color.po b/docs/locale/en/LC_MESSAGES/api/enums/topic_icon_color.po deleted file mode 100644 index f1a6c288..00000000 --- a/docs/locale/en/LC_MESSAGES/api/enums/topic_icon_color.po +++ /dev/null @@ -1,32 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/enums/topic_icon_color.rst:3 -msgid "TopicIconColor" -msgstr "" - -#: aiogram.enums.topic_icon_color.TopicIconColor:1 of -msgid "Color of the topic icon in RGB format." -msgstr "" - -#: aiogram.enums.topic_icon_color.TopicIconColor:3 of -msgid "" -"Source: " -"https://github.com/telegramdesktop/tdesktop/blob/991fe491c5ae62705d77aa8fdd44a79caf639c45/Telegram/SourceFiles/data/data_forum_topic.cpp#L51-L56" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/enums/update_type.po b/docs/locale/en/LC_MESSAGES/api/enums/update_type.po deleted file mode 100644 index 1a191276..00000000 --- a/docs/locale/en/LC_MESSAGES/api/enums/update_type.po +++ /dev/null @@ -1,30 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/enums/update_type.rst:3 -msgid "UpdateType" -msgstr "" - -#: aiogram.enums.update_type.UpdateType:1 of -msgid "This object represents the complete list of allowed update types" -msgstr "" - -#: aiogram.enums.update_type.UpdateType:3 of -msgid "Source: https://core.telegram.org/bots/api#update" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/index.po b/docs/locale/en/LC_MESSAGES/api/index.po deleted file mode 100644 index 25f384d5..00000000 --- a/docs/locale/en/LC_MESSAGES/api/index.po +++ /dev/null @@ -1,34 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/index.rst:3 -msgid "Bot API" -msgstr "" - -#: ../../api/index.rst:5 -msgid "" -"**aiogram** now is fully support of `Telegram Bot API " -"`_" -msgstr "" - -#: ../../api/index.rst:7 -msgid "" -"All methods and types is fully autogenerated from Telegram Bot API docs " -"by parser with code-generator." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/add_sticker_to_set.po b/docs/locale/en/LC_MESSAGES/api/methods/add_sticker_to_set.po deleted file mode 100644 index 483b44cd..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/add_sticker_to_set.po +++ /dev/null @@ -1,149 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/methods/add_sticker_to_set.rst:3 -msgid "addStickerToSet" -msgstr "" - -#: ../../api/methods/add_sticker_to_set.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.add_sticker_to_set.AddStickerToSet:1 of -msgid "" -"Use this method to add a new sticker to a set created by the bot. The " -"format of the added sticker must match the format of the other stickers " -"in the set. Emoji sticker sets can have up to 200 stickers. Animated and " -"video sticker sets can have up to 50 stickers. Static sticker sets can " -"have up to 120 stickers. Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.add_sticker_to_set.AddStickerToSet:3 of -msgid "Source: https://core.telegram.org/bots/api#addstickertoset" -msgstr "" - -#: ../../docstring aiogram.methods.add_sticker_to_set.AddStickerToSet.user_id:1 -#: of -msgid "User identifier of sticker set owner" -msgstr "" - -#: ../../docstring aiogram.methods.add_sticker_to_set.AddStickerToSet.name:1 of -msgid "Sticker set name" -msgstr "" - -#: ../../docstring aiogram.methods.add_sticker_to_set.AddStickerToSet.sticker:1 -#: of -msgid "" -"A JSON-serialized object with information about the added sticker. If " -"exactly the same sticker had already been added to the set, then the set " -"isn't changed." -msgstr "" - -#: ../../api/methods/add_sticker_to_set.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/add_sticker_to_set.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/add_sticker_to_set.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/add_sticker_to_set.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/add_sticker_to_set.rst:29 -msgid ":code:`from aiogram.methods.add_sticker_to_set import AddStickerToSet`" -msgstr "" - -#: ../../api/methods/add_sticker_to_set.rst:30 -msgid "alias: :code:`from aiogram.methods import AddStickerToSet`" -msgstr "" - -#: ../../api/methods/add_sticker_to_set.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/add_sticker_to_set.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#~ msgid "" -#~ "Use this method to add a new " -#~ "sticker to a set created by the" -#~ " bot. You **must** use exactly one" -#~ " of the fields *png_sticker*, " -#~ "*tgs_sticker*, or *webm_sticker*. Animated " -#~ "stickers can be added to animated " -#~ "sticker sets and only to them. " -#~ "Animated sticker sets can have up " -#~ "to 50 stickers. Static sticker sets " -#~ "can have up to 120 stickers. " -#~ "Returns :code:`True` on success." -#~ msgstr "" - -#~ msgid "One or more emoji corresponding to the sticker" -#~ msgstr "" - -#~ msgid "" -#~ "**PNG** image with the sticker, must " -#~ "be up to 512 kilobytes in size," -#~ " dimensions must not exceed 512px, " -#~ "and either width or height must be" -#~ " exactly 512px. 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 " -#~ "» `" -#~ msgstr "" - -#~ msgid "" -#~ "**TGS** animation with the sticker, " -#~ "uploaded using multipart/form-data. See " -#~ "`https://core.telegram.org/stickers#animated-sticker-" -#~ "requirements `_`https://core.telegram.org/stickers" -#~ "#animated-sticker-requirements " -#~ "`_ for technical requirements" -#~ msgstr "" - -#~ msgid "" -#~ "**WEBM** video with the sticker, " -#~ "uploaded using multipart/form-data. See " -#~ "`https://core.telegram.org/stickers#video-sticker-" -#~ "requirements `_`https://core.telegram.org/stickers" -#~ "#video-sticker-requirements " -#~ "`_ for technical requirements" -#~ msgstr "" - -#~ msgid "" -#~ "A JSON-serialized object for position" -#~ " where the mask should be placed " -#~ "on faces" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/answer_callback_query.po b/docs/locale/en/LC_MESSAGES/api/methods/answer_callback_query.po deleted file mode 100644 index 2370aa3c..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/answer_callback_query.po +++ /dev/null @@ -1,141 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/answer_callback_query.rst:3 -msgid "answerCallbackQuery" -msgstr "" - -#: ../../api/methods/answer_callback_query.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.answer_callback_query.AnswerCallbackQuery:1 of -msgid "" -"Use this method to send answers to callback queries sent from `inline " -"keyboards `_. " -"The answer will be displayed to the user as a notification at the top of " -"the chat screen or as an alert. On success, :code:`True` is returned." -msgstr "" - -#: aiogram.methods.answer_callback_query.AnswerCallbackQuery:3 of -msgid "" -"Alternatively, the user can be redirected to the specified Game URL. For " -"this option to work, you must first create a game for your bot via " -"`@BotFather `_ and accept the terms. Otherwise, " -"you may use links like :code:`t.me/your_bot?start=XXXX` that open your " -"bot with a parameter." -msgstr "" - -#: aiogram.methods.answer_callback_query.AnswerCallbackQuery:5 of -msgid "Source: https://core.telegram.org/bots/api#answercallbackquery" -msgstr "" - -#: ../../docstring -#: aiogram.methods.answer_callback_query.AnswerCallbackQuery.callback_query_id:1 -#: of -msgid "Unique identifier for the query to be answered" -msgstr "" - -#: ../../docstring -#: aiogram.methods.answer_callback_query.AnswerCallbackQuery.text:1 of -msgid "" -"Text of the notification. If not specified, nothing will be shown to the " -"user, 0-200 characters" -msgstr "" - -#: ../../docstring -#: aiogram.methods.answer_callback_query.AnswerCallbackQuery.show_alert:1 of -msgid "" -"If :code:`True`, an alert will be shown by the client instead of a " -"notification at the top of the chat screen. Defaults to *false*." -msgstr "" - -#: ../../docstring -#: aiogram.methods.answer_callback_query.AnswerCallbackQuery.url:1 of -msgid "" -"URL that will be opened by the user's client. If you have created a " -":class:`aiogram.types.game.Game` and accepted the conditions via " -"`@BotFather `_, specify the URL that opens your " -"game - note that this will only work if the query comes from a " -"`https://core.telegram.org/bots/api#inlinekeyboardbutton " -"`_ " -"*callback_game* button." -msgstr "" - -#: ../../docstring -#: aiogram.methods.answer_callback_query.AnswerCallbackQuery.cache_time:1 of -msgid "" -"The maximum amount of time in seconds that the result of the callback " -"query may be cached client-side. Telegram apps will support caching " -"starting in version 3.14. Defaults to 0." -msgstr "" - -#: ../../api/methods/answer_callback_query.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/answer_callback_query.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/answer_callback_query.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/answer_callback_query.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/answer_callback_query.rst:29 -msgid "" -":code:`from aiogram.methods.answer_callback_query import " -"AnswerCallbackQuery`" -msgstr "" - -#: ../../api/methods/answer_callback_query.rst:30 -msgid "alias: :code:`from aiogram.methods import AnswerCallbackQuery`" -msgstr "" - -#: ../../api/methods/answer_callback_query.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/answer_callback_query.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/answer_callback_query.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/answer_callback_query.rst:50 -msgid ":meth:`aiogram.types.callback_query.CallbackQuery.answer`" -msgstr "" - -#~ msgid "" -#~ "Use this method to send answers to" -#~ " callback queries sent from `inline " -#~ "keyboards `_. " -#~ "The answer will be displayed to " -#~ "the user as a notification at the" -#~ " top of the chat screen or as" -#~ " an alert. On success, :code:`True` " -#~ "is returned." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/answer_inline_query.po b/docs/locale/en/LC_MESSAGES/api/methods/answer_inline_query.po deleted file mode 100644 index 22834a67..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/answer_inline_query.po +++ /dev/null @@ -1,142 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/answer_inline_query.rst:3 -msgid "answerInlineQuery" -msgstr "" - -#: ../../api/methods/answer_inline_query.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.answer_inline_query.AnswerInlineQuery:1 of -msgid "" -"Use this method to send answers to an inline query. On success, " -":code:`True` is returned." -msgstr "" - -#: aiogram.methods.answer_inline_query.AnswerInlineQuery:3 of -msgid "No more than **50** results per query are allowed." -msgstr "" - -#: aiogram.methods.answer_inline_query.AnswerInlineQuery:5 of -msgid "Source: https://core.telegram.org/bots/api#answerinlinequery" -msgstr "" - -#: ../../docstring -#: aiogram.methods.answer_inline_query.AnswerInlineQuery.inline_query_id:1 of -msgid "Unique identifier for the answered query" -msgstr "" - -#: ../../docstring -#: aiogram.methods.answer_inline_query.AnswerInlineQuery.results:1 of -msgid "A JSON-serialized array of results for the inline query" -msgstr "" - -#: ../../docstring -#: aiogram.methods.answer_inline_query.AnswerInlineQuery.cache_time:1 of -msgid "" -"The maximum amount of time in seconds that the result of the inline query" -" may be cached on the server. Defaults to 300." -msgstr "" - -#: ../../docstring -#: aiogram.methods.answer_inline_query.AnswerInlineQuery.is_personal:1 of -msgid "" -"Pass :code:`True` if results may be cached on the server side only for " -"the user that sent the query. By default, results may be returned to any " -"user who sends the same query" -msgstr "" - -#: ../../docstring -#: aiogram.methods.answer_inline_query.AnswerInlineQuery.next_offset:1 of -msgid "" -"Pass the offset that a client should send in the next query with the same" -" text to receive more results. Pass an empty string if there are no more " -"results or if you don't support pagination. Offset length can't exceed 64" -" bytes." -msgstr "" - -#: ../../docstring -#: aiogram.methods.answer_inline_query.AnswerInlineQuery.switch_pm_text:1 of -msgid "" -"If passed, clients will display a button with specified text that " -"switches the user to a private chat with the bot and sends the bot a " -"start message with the parameter *switch_pm_parameter*" -msgstr "" - -#: ../../docstring -#: aiogram.methods.answer_inline_query.AnswerInlineQuery.switch_pm_parameter:1 -#: of -msgid "" -"`Deep-linking `_ " -"parameter for the /start message sent to the bot when user presses the " -"switch button. 1-64 characters, only :code:`A-Z`, :code:`a-z`, " -":code:`0-9`, :code:`_` and :code:`-` are allowed." -msgstr "" - -#: ../../api/methods/answer_inline_query.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/answer_inline_query.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/answer_inline_query.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/answer_inline_query.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/answer_inline_query.rst:29 -msgid ":code:`from aiogram.methods.answer_inline_query import AnswerInlineQuery`" -msgstr "" - -#: ../../api/methods/answer_inline_query.rst:30 -msgid "alias: :code:`from aiogram.methods import AnswerInlineQuery`" -msgstr "" - -#: ../../api/methods/answer_inline_query.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/answer_inline_query.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/answer_inline_query.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/answer_inline_query.rst:50 -msgid ":meth:`aiogram.types.inline_query.InlineQuery.answer`" -msgstr "" - -#~ msgid "" -#~ "`Deep-linking `_ parameter for the /start " -#~ "message sent to the bot when user" -#~ " presses the switch button. 1-64 " -#~ "characters, only :code:`A-Z`, :code:`a-z`, " -#~ ":code:`0-9`, :code:`_` and :code:`-` are " -#~ "allowed." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/answer_pre_checkout_query.po b/docs/locale/en/LC_MESSAGES/api/methods/answer_pre_checkout_query.po deleted file mode 100644 index 6447522c..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/answer_pre_checkout_query.po +++ /dev/null @@ -1,100 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/answer_pre_checkout_query.rst:3 -msgid "answerPreCheckoutQuery" -msgstr "" - -#: ../../api/methods/answer_pre_checkout_query.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.answer_pre_checkout_query.AnswerPreCheckoutQuery:1 of -msgid "" -"Once the user has confirmed their payment and shipping details, the Bot " -"API sends the final confirmation in the form of an " -":class:`aiogram.types.update.Update` with the field *pre_checkout_query*." -" Use this method to respond to such pre-checkout queries. On success, " -":code:`True` is returned. **Note:** The Bot API must receive an answer " -"within 10 seconds after the pre-checkout query was sent." -msgstr "" - -#: aiogram.methods.answer_pre_checkout_query.AnswerPreCheckoutQuery:3 of -msgid "Source: https://core.telegram.org/bots/api#answerprecheckoutquery" -msgstr "" - -#: ../../docstring -#: aiogram.methods.answer_pre_checkout_query.AnswerPreCheckoutQuery.pre_checkout_query_id:1 -#: of -msgid "Unique identifier for the query to be answered" -msgstr "" - -#: ../../docstring -#: aiogram.methods.answer_pre_checkout_query.AnswerPreCheckoutQuery.ok:1 of -msgid "" -"Specify :code:`True` if everything is alright (goods are available, etc.)" -" and the bot is ready to proceed with the order. Use :code:`False` if " -"there are any problems." -msgstr "" - -#: ../../docstring -#: aiogram.methods.answer_pre_checkout_query.AnswerPreCheckoutQuery.error_message:1 -#: of -msgid "" -"Required if *ok* is :code:`False`. Error message in human readable form " -"that explains the reason for failure to proceed with the checkout (e.g. " -"\"Sorry, somebody just bought the last of our amazing black T-shirts " -"while you were busy filling out your payment details. Please choose a " -"different color or garment!\"). Telegram will display this message to the" -" user." -msgstr "" - -#: ../../api/methods/answer_pre_checkout_query.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/answer_pre_checkout_query.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/answer_pre_checkout_query.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/answer_pre_checkout_query.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/answer_pre_checkout_query.rst:29 -msgid "" -":code:`from aiogram.methods.answer_pre_checkout_query import " -"AnswerPreCheckoutQuery`" -msgstr "" - -#: ../../api/methods/answer_pre_checkout_query.rst:30 -msgid "alias: :code:`from aiogram.methods import AnswerPreCheckoutQuery`" -msgstr "" - -#: ../../api/methods/answer_pre_checkout_query.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/answer_pre_checkout_query.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/answer_shipping_query.po b/docs/locale/en/LC_MESSAGES/api/methods/answer_shipping_query.po deleted file mode 100644 index f1a61600..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/answer_shipping_query.po +++ /dev/null @@ -1,104 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/answer_shipping_query.rst:3 -msgid "answerShippingQuery" -msgstr "" - -#: ../../api/methods/answer_shipping_query.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.answer_shipping_query.AnswerShippingQuery:1 of -msgid "" -"If you sent an invoice requesting a shipping address and the parameter " -"*is_flexible* was specified, the Bot API will send an " -":class:`aiogram.types.update.Update` with a *shipping_query* field to the" -" bot. Use this method to reply to shipping queries. On success, " -":code:`True` is returned." -msgstr "" - -#: aiogram.methods.answer_shipping_query.AnswerShippingQuery:3 of -msgid "Source: https://core.telegram.org/bots/api#answershippingquery" -msgstr "" - -#: ../../docstring -#: aiogram.methods.answer_shipping_query.AnswerShippingQuery.shipping_query_id:1 -#: of -msgid "Unique identifier for the query to be answered" -msgstr "" - -#: ../../docstring -#: aiogram.methods.answer_shipping_query.AnswerShippingQuery.ok:1 of -msgid "" -"Pass :code:`True` if delivery to the specified address is possible and " -":code:`False` if there are any problems (for example, if delivery to the " -"specified address is not possible)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.answer_shipping_query.AnswerShippingQuery.shipping_options:1 -#: of -msgid "" -"Required if *ok* is :code:`True`. A JSON-serialized array of available " -"shipping options." -msgstr "" - -#: ../../docstring -#: aiogram.methods.answer_shipping_query.AnswerShippingQuery.error_message:1 of -msgid "" -"Required if *ok* is :code:`False`. Error message in human readable form " -"that explains why it is impossible to complete the order (e.g. \"Sorry, " -"delivery to your desired address is unavailable'). Telegram will display " -"this message to the user." -msgstr "" - -#: ../../api/methods/answer_shipping_query.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/answer_shipping_query.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/answer_shipping_query.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/answer_shipping_query.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/answer_shipping_query.rst:29 -msgid "" -":code:`from aiogram.methods.answer_shipping_query import " -"AnswerShippingQuery`" -msgstr "" - -#: ../../api/methods/answer_shipping_query.rst:30 -msgid "alias: :code:`from aiogram.methods import AnswerShippingQuery`" -msgstr "" - -#: ../../api/methods/answer_shipping_query.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/answer_shipping_query.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/answer_web_app_query.po b/docs/locale/en/LC_MESSAGES/api/methods/answer_web_app_query.po deleted file mode 100644 index 8fd685be..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/answer_web_app_query.po +++ /dev/null @@ -1,82 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/answer_web_app_query.rst:3 -msgid "answerWebAppQuery" -msgstr "" - -#: ../../api/methods/answer_web_app_query.rst:5 -msgid "Returns: :obj:`SentWebAppMessage`" -msgstr "" - -#: aiogram.methods.answer_web_app_query.AnswerWebAppQuery:1 of -msgid "" -"Use this method to set the result of an interaction with a `Web App " -"`_ and send a corresponding " -"message on behalf of the user to the chat from which the query " -"originated. On success, a " -":class:`aiogram.types.sent_web_app_message.SentWebAppMessage` object is " -"returned." -msgstr "" - -#: aiogram.methods.answer_web_app_query.AnswerWebAppQuery:3 of -msgid "Source: https://core.telegram.org/bots/api#answerwebappquery" -msgstr "" - -#: ../../docstring -#: aiogram.methods.answer_web_app_query.AnswerWebAppQuery.web_app_query_id:1 of -msgid "Unique identifier for the query to be answered" -msgstr "" - -#: ../../docstring -#: aiogram.methods.answer_web_app_query.AnswerWebAppQuery.result:1 of -msgid "A JSON-serialized object describing the message to be sent" -msgstr "" - -#: ../../api/methods/answer_web_app_query.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/answer_web_app_query.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/answer_web_app_query.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/answer_web_app_query.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/answer_web_app_query.rst:29 -msgid ":code:`from aiogram.methods.answer_web_app_query import AnswerWebAppQuery`" -msgstr "" - -#: ../../api/methods/answer_web_app_query.rst:30 -msgid "alias: :code:`from aiogram.methods import AnswerWebAppQuery`" -msgstr "" - -#: ../../api/methods/answer_web_app_query.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/answer_web_app_query.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/approve_chat_join_request.po b/docs/locale/en/LC_MESSAGES/api/methods/approve_chat_join_request.po deleted file mode 100644 index 93504319..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/approve_chat_join_request.po +++ /dev/null @@ -1,93 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/approve_chat_join_request.rst:3 -msgid "approveChatJoinRequest" -msgstr "" - -#: ../../api/methods/approve_chat_join_request.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.approve_chat_join_request.ApproveChatJoinRequest:1 of -msgid "" -"Use this method to approve a chat join request. The bot must be an " -"administrator in the chat for this to work and must have the " -"*can_invite_users* administrator right. Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.approve_chat_join_request.ApproveChatJoinRequest:3 of -msgid "Source: https://core.telegram.org/bots/api#approvechatjoinrequest" -msgstr "" - -#: ../../docstring -#: aiogram.methods.approve_chat_join_request.ApproveChatJoinRequest.chat_id:1 -#: of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.approve_chat_join_request.ApproveChatJoinRequest.user_id:1 -#: of -msgid "Unique identifier of the target user" -msgstr "" - -#: ../../api/methods/approve_chat_join_request.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/approve_chat_join_request.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/approve_chat_join_request.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/approve_chat_join_request.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/approve_chat_join_request.rst:29 -msgid "" -":code:`from aiogram.methods.approve_chat_join_request import " -"ApproveChatJoinRequest`" -msgstr "" - -#: ../../api/methods/approve_chat_join_request.rst:30 -msgid "alias: :code:`from aiogram.methods import ApproveChatJoinRequest`" -msgstr "" - -#: ../../api/methods/approve_chat_join_request.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/approve_chat_join_request.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/approve_chat_join_request.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/approve_chat_join_request.rst:50 -msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.approve`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/ban_chat_member.po b/docs/locale/en/LC_MESSAGES/api/methods/ban_chat_member.po deleted file mode 100644 index 487b0d38..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/ban_chat_member.po +++ /dev/null @@ -1,108 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/ban_chat_member.rst:3 -msgid "banChatMember" -msgstr "" - -#: ../../api/methods/ban_chat_member.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.ban_chat_member.BanChatMember:1 of -msgid "" -"Use this method to ban a user in a group, a supergroup or a channel. In " -"the case of supergroups and channels, the user will not be able to return" -" to the chat on their own using invite links, etc., unless `unbanned " -"`_ first. The bot " -"must be an administrator in the chat for this to work and must have the " -"appropriate administrator rights. Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.ban_chat_member.BanChatMember:3 of -msgid "Source: https://core.telegram.org/bots/api#banchatmember" -msgstr "" - -#: ../../docstring aiogram.methods.ban_chat_member.BanChatMember.chat_id:1 of -msgid "" -"Unique identifier for the target group or username of the target " -"supergroup or channel (in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.ban_chat_member.BanChatMember.user_id:1 of -msgid "Unique identifier of the target user" -msgstr "" - -#: ../../docstring aiogram.methods.ban_chat_member.BanChatMember.until_date:1 -#: of -msgid "" -"Date when the user will be unbanned, unix time. If user is banned for " -"more than 366 days or less than 30 seconds from the current time they are" -" considered to be banned forever. Applied for supergroups and channels " -"only." -msgstr "" - -#: ../../docstring -#: aiogram.methods.ban_chat_member.BanChatMember.revoke_messages:1 of -msgid "" -"Pass :code:`True` to delete all messages from the chat for the user that " -"is being removed. If :code:`False`, the user will be able to see messages" -" in the group that were sent before the user was removed. Always " -":code:`True` for supergroups and channels." -msgstr "" - -#: ../../api/methods/ban_chat_member.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/ban_chat_member.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/ban_chat_member.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/ban_chat_member.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/ban_chat_member.rst:29 -msgid ":code:`from aiogram.methods.ban_chat_member import BanChatMember`" -msgstr "" - -#: ../../api/methods/ban_chat_member.rst:30 -msgid "alias: :code:`from aiogram.methods import BanChatMember`" -msgstr "" - -#: ../../api/methods/ban_chat_member.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/ban_chat_member.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/ban_chat_member.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/ban_chat_member.rst:50 -msgid ":meth:`aiogram.types.chat.Chat.ban`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/ban_chat_sender_chat.po b/docs/locale/en/LC_MESSAGES/api/methods/ban_chat_sender_chat.po deleted file mode 100644 index 410a0c8e..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/ban_chat_sender_chat.po +++ /dev/null @@ -1,93 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/ban_chat_sender_chat.rst:3 -msgid "banChatSenderChat" -msgstr "" - -#: ../../api/methods/ban_chat_sender_chat.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.ban_chat_sender_chat.BanChatSenderChat:1 of -msgid "" -"Use this method to ban a channel chat in a supergroup or a channel. Until" -" the chat is `unbanned " -"`_, the owner of " -"the banned chat won't be able to send messages on behalf of **any of " -"their channels**. The bot must be an administrator in the supergroup or " -"channel for this to work and must have the appropriate administrator " -"rights. Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.ban_chat_sender_chat.BanChatSenderChat:3 of -msgid "Source: https://core.telegram.org/bots/api#banchatsenderchat" -msgstr "" - -#: ../../docstring -#: aiogram.methods.ban_chat_sender_chat.BanChatSenderChat.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.ban_chat_sender_chat.BanChatSenderChat.sender_chat_id:1 of -msgid "Unique identifier of the target sender chat" -msgstr "" - -#: ../../api/methods/ban_chat_sender_chat.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/ban_chat_sender_chat.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/ban_chat_sender_chat.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/ban_chat_sender_chat.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/ban_chat_sender_chat.rst:29 -msgid ":code:`from aiogram.methods.ban_chat_sender_chat import BanChatSenderChat`" -msgstr "" - -#: ../../api/methods/ban_chat_sender_chat.rst:30 -msgid "alias: :code:`from aiogram.methods import BanChatSenderChat`" -msgstr "" - -#: ../../api/methods/ban_chat_sender_chat.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/ban_chat_sender_chat.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/ban_chat_sender_chat.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/ban_chat_sender_chat.rst:50 -msgid ":meth:`aiogram.types.chat.Chat.ban_sender_chat`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/close.po b/docs/locale/en/LC_MESSAGES/api/methods/close.po deleted file mode 100644 index cfdf34fc..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/close.po +++ /dev/null @@ -1,71 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/close.rst:3 -msgid "close" -msgstr "" - -#: ../../api/methods/close.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.close.Close:1 of -msgid "" -"Use this method to close the bot instance before moving it from one local" -" server to another. You need to delete the webhook before calling this " -"method to ensure that the bot isn't launched again after server restart. " -"The method will return error 429 in the first 10 minutes after the bot is" -" launched. Returns :code:`True` on success. Requires no parameters." -msgstr "" - -#: aiogram.methods.close.Close:3 of -msgid "Source: https://core.telegram.org/bots/api#close" -msgstr "" - -#: ../../api/methods/close.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/close.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/close.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/close.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/close.rst:29 -msgid ":code:`from aiogram.methods.close import Close`" -msgstr "" - -#: ../../api/methods/close.rst:30 -msgid "alias: :code:`from aiogram.methods import Close`" -msgstr "" - -#: ../../api/methods/close.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/close.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/close_forum_topic.po b/docs/locale/en/LC_MESSAGES/api/methods/close_forum_topic.po deleted file mode 100644 index cf6aa076..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/close_forum_topic.po +++ /dev/null @@ -1,82 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/close_forum_topic.rst:3 -msgid "closeForumTopic" -msgstr "" - -#: ../../api/methods/close_forum_topic.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.close_forum_topic.CloseForumTopic:1 of -msgid "" -"Use this method to close an open 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." -msgstr "" - -#: aiogram.methods.close_forum_topic.CloseForumTopic:3 of -msgid "Source: https://core.telegram.org/bots/api#closeforumtopic" -msgstr "" - -#: ../../docstring aiogram.methods.close_forum_topic.CloseForumTopic.chat_id:1 -#: of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup (in the format :code:`@supergroupusername`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.close_forum_topic.CloseForumTopic.message_thread_id:1 of -msgid "Unique identifier for the target message thread of the forum topic" -msgstr "" - -#: ../../api/methods/close_forum_topic.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/close_forum_topic.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/close_forum_topic.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/close_forum_topic.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/close_forum_topic.rst:29 -msgid ":code:`from aiogram.methods.close_forum_topic import CloseForumTopic`" -msgstr "" - -#: ../../api/methods/close_forum_topic.rst:30 -msgid "alias: :code:`from aiogram.methods import CloseForumTopic`" -msgstr "" - -#: ../../api/methods/close_forum_topic.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/close_forum_topic.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/close_general_forum_topic.po b/docs/locale/en/LC_MESSAGES/api/methods/close_general_forum_topic.po deleted file mode 100644 index f67c10fd..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/close_general_forum_topic.po +++ /dev/null @@ -1,80 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/close_general_forum_topic.rst:3 -msgid "closeGeneralForumTopic" -msgstr "" - -#: ../../api/methods/close_general_forum_topic.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.close_general_forum_topic.CloseGeneralForumTopic:1 of -msgid "" -"Use this method to close an open '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." -msgstr "" - -#: aiogram.methods.close_general_forum_topic.CloseGeneralForumTopic:3 of -msgid "Source: https://core.telegram.org/bots/api#closegeneralforumtopic" -msgstr "" - -#: ../../docstring -#: aiogram.methods.close_general_forum_topic.CloseGeneralForumTopic.chat_id:1 -#: of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup (in the format :code:`@supergroupusername`)" -msgstr "" - -#: ../../api/methods/close_general_forum_topic.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/close_general_forum_topic.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/close_general_forum_topic.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/close_general_forum_topic.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/close_general_forum_topic.rst:29 -msgid "" -":code:`from aiogram.methods.close_general_forum_topic import " -"CloseGeneralForumTopic`" -msgstr "" - -#: ../../api/methods/close_general_forum_topic.rst:30 -msgid "alias: :code:`from aiogram.methods import CloseGeneralForumTopic`" -msgstr "" - -#: ../../api/methods/close_general_forum_topic.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/close_general_forum_topic.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/copy_message.po b/docs/locale/en/LC_MESSAGES/api/methods/copy_message.po deleted file mode 100644 index f30e9b73..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/copy_message.po +++ /dev/null @@ -1,169 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/copy_message.rst:3 -msgid "copyMessage" -msgstr "" - -#: ../../api/methods/copy_message.rst:5 -msgid "Returns: :obj:`MessageId`" -msgstr "" - -#: aiogram.methods.copy_message.CopyMessage:1 of -msgid "" -"Use this method to copy messages of any kind. Service 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." -msgstr "" - -#: aiogram.methods.copy_message.CopyMessage:3 of -msgid "Source: https://core.telegram.org/bots/api#copymessage" -msgstr "" - -#: ../../docstring aiogram.methods.copy_message.CopyMessage.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.copy_message.CopyMessage.from_chat_id:1 of -msgid "" -"Unique identifier for the chat where the original message was sent (or " -"channel username in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.copy_message.CopyMessage.message_id:1 of -msgid "Message identifier in the chat specified in *from_chat_id*" -msgstr "" - -#: ../../docstring aiogram.methods.copy_message.CopyMessage.message_thread_id:1 -#: of -msgid "" -"Unique identifier for the target message thread (topic) of the forum; for" -" forum supergroups only" -msgstr "" - -#: ../../docstring aiogram.methods.copy_message.CopyMessage.caption:1 of -msgid "" -"New caption for media, 0-1024 characters after entities parsing. If not " -"specified, the original caption is kept" -msgstr "" - -#: ../../docstring aiogram.methods.copy_message.CopyMessage.parse_mode:1 of -msgid "" -"Mode for parsing entities in the new caption. See `formatting options " -"`_ for more " -"details." -msgstr "" - -#: ../../docstring aiogram.methods.copy_message.CopyMessage.caption_entities:1 -#: of -msgid "" -"A JSON-serialized list of special entities that appear in the new " -"caption, which can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.methods.copy_message.CopyMessage.disable_notification:1 of -msgid "" -"Sends the message `silently `_. Users will receive a notification with no sound." -msgstr "" - -#: ../../docstring aiogram.methods.copy_message.CopyMessage.protect_content:1 -#: of -msgid "Protects the contents of the sent message from forwarding and saving" -msgstr "" - -#: ../../docstring -#: aiogram.methods.copy_message.CopyMessage.reply_to_message_id:1 of -msgid "If the message is a reply, ID of the original message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.copy_message.CopyMessage.allow_sending_without_reply:1 of -msgid "" -"Pass :code:`True` if the message should be sent even if the specified " -"replied-to message is not found" -msgstr "" - -#: ../../docstring aiogram.methods.copy_message.CopyMessage.reply_markup:1 of -msgid "" -"Additional interface options. A JSON-serialized object for an `inline " -"keyboard `_, " -"`custom reply keyboard " -"`_, instructions to " -"remove reply keyboard or to force a reply from the user." -msgstr "" - -#: ../../api/methods/copy_message.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/copy_message.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/copy_message.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/copy_message.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/copy_message.rst:29 -msgid ":code:`from aiogram.methods.copy_message import CopyMessage`" -msgstr "" - -#: ../../api/methods/copy_message.rst:30 -msgid "alias: :code:`from aiogram.methods import CopyMessage`" -msgstr "" - -#: ../../api/methods/copy_message.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/copy_message.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/copy_message.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/copy_message.rst:50 -msgid ":meth:`aiogram.types.message.Message.copy_to`" -msgstr "" - -#~ msgid "" -#~ "Additional interface options. A JSON-" -#~ "serialized object for an `inline " -#~ "keyboard `_, " -#~ "`custom reply keyboard " -#~ "`_, instructions " -#~ "to remove reply keyboard or to " -#~ "force a reply from the user." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/create_chat_invite_link.po b/docs/locale/en/LC_MESSAGES/api/methods/create_chat_invite_link.po deleted file mode 100644 index 7099e1d3..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/create_chat_invite_link.po +++ /dev/null @@ -1,118 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/create_chat_invite_link.rst:3 -msgid "createChatInviteLink" -msgstr "" - -#: ../../api/methods/create_chat_invite_link.rst:5 -msgid "Returns: :obj:`ChatInviteLink`" -msgstr "" - -#: aiogram.methods.create_chat_invite_link.CreateChatInviteLink:1 of -msgid "" -"Use this method to create an additional invite link for a chat. The bot " -"must be an administrator in the chat for this to work and must have the " -"appropriate administrator rights. The link can be revoked using the " -"method " -":class:`aiogram.methods.revoke_chat_invite_link.RevokeChatInviteLink`. " -"Returns the new invite link as " -":class:`aiogram.types.chat_invite_link.ChatInviteLink` object." -msgstr "" - -#: aiogram.methods.create_chat_invite_link.CreateChatInviteLink:3 of -msgid "Source: https://core.telegram.org/bots/api#createchatinvitelink" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_chat_invite_link.CreateChatInviteLink.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_chat_invite_link.CreateChatInviteLink.name:1 of -msgid "Invite link name; 0-32 characters" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_chat_invite_link.CreateChatInviteLink.expire_date:1 -#: of -msgid "Point in time (Unix timestamp) when the link will expire" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_chat_invite_link.CreateChatInviteLink.member_limit:1 -#: of -msgid "" -"The maximum number of users that can be members of the chat " -"simultaneously after joining the chat via this invite link; 1-99999" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_chat_invite_link.CreateChatInviteLink.creates_join_request:1 -#: of -msgid "" -":code:`True`, if users joining the chat via the link need to be approved " -"by chat administrators. If :code:`True`, *member_limit* can't be " -"specified" -msgstr "" - -#: ../../api/methods/create_chat_invite_link.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/create_chat_invite_link.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/create_chat_invite_link.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/create_chat_invite_link.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/create_chat_invite_link.rst:29 -msgid "" -":code:`from aiogram.methods.create_chat_invite_link import " -"CreateChatInviteLink`" -msgstr "" - -#: ../../api/methods/create_chat_invite_link.rst:30 -msgid "alias: :code:`from aiogram.methods import CreateChatInviteLink`" -msgstr "" - -#: ../../api/methods/create_chat_invite_link.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/create_chat_invite_link.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/create_chat_invite_link.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/create_chat_invite_link.rst:50 -msgid ":meth:`aiogram.types.chat.Chat.create_invite_link`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/create_forum_topic.po b/docs/locale/en/LC_MESSAGES/api/methods/create_forum_topic.po deleted file mode 100644 index 20e71139..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/create_forum_topic.po +++ /dev/null @@ -1,106 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/create_forum_topic.rst:3 -msgid "createForumTopic" -msgstr "" - -#: ../../api/methods/create_forum_topic.rst:5 -msgid "Returns: :obj:`ForumTopic`" -msgstr "" - -#: aiogram.methods.create_forum_topic.CreateForumTopic:1 of -msgid "" -"Use this method to create 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. Returns information about the " -"created topic as a :class:`aiogram.types.forum_topic.ForumTopic` object." -msgstr "" - -#: aiogram.methods.create_forum_topic.CreateForumTopic:3 of -msgid "Source: https://core.telegram.org/bots/api#createforumtopic" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_forum_topic.CreateForumTopic.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup (in the format :code:`@supergroupusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.create_forum_topic.CreateForumTopic.name:1 -#: of -msgid "Topic name, 1-128 characters" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_forum_topic.CreateForumTopic.icon_color:1 of -msgid "" -"Color of the topic icon in RGB format. Currently, must be one of 7322096 " -"(0x6FB9F0), 16766590 (0xFFD67E), 13338331 (0xCB86DB), 9367192 (0x8EEE98)," -" 16749490 (0xFF93B2), or 16478047 (0xFB6F5F)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_forum_topic.CreateForumTopic.icon_custom_emoji_id:1 -#: of -msgid "" -"Unique identifier of the custom emoji shown as the topic icon. Use " -":class:`aiogram.methods.get_forum_topic_icon_stickers.GetForumTopicIconStickers`" -" to get all allowed custom emoji identifiers." -msgstr "" - -#: ../../api/methods/create_forum_topic.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/create_forum_topic.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/create_forum_topic.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/create_forum_topic.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/create_forum_topic.rst:29 -msgid ":code:`from aiogram.methods.create_forum_topic import CreateForumTopic`" -msgstr "" - -#: ../../api/methods/create_forum_topic.rst:30 -msgid "alias: :code:`from aiogram.methods import CreateForumTopic`" -msgstr "" - -#: ../../api/methods/create_forum_topic.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/create_forum_topic.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#~ msgid "" -#~ "Color of the topic icon in RGB " -#~ "format. Currently, must be one of " -#~ "0x6FB9F0, 0xFFD67E, 0xCB86DB, 0x8EEE98, " -#~ "0xFF93B2, or 0xFB6F5F" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/create_invoice_link.po b/docs/locale/en/LC_MESSAGES/api/methods/create_invoice_link.po deleted file mode 100644 index ca18a308..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/create_invoice_link.po +++ /dev/null @@ -1,207 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/create_invoice_link.rst:3 -msgid "createInvoiceLink" -msgstr "" - -#: ../../api/methods/create_invoice_link.rst:5 -msgid "Returns: :obj:`str`" -msgstr "" - -#: aiogram.methods.create_invoice_link.CreateInvoiceLink:1 of -msgid "" -"Use this method to create a link for an invoice. Returns the created " -"invoice link as *String* on success." -msgstr "" - -#: aiogram.methods.create_invoice_link.CreateInvoiceLink:3 of -msgid "Source: https://core.telegram.org/bots/api#createinvoicelink" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_invoice_link.CreateInvoiceLink.title:1 of -msgid "Product name, 1-32 characters" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_invoice_link.CreateInvoiceLink.description:1 of -msgid "Product description, 1-255 characters" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_invoice_link.CreateInvoiceLink.payload:1 of -msgid "" -"Bot-defined invoice payload, 1-128 bytes. This will not be displayed to " -"the user, use for your internal processes." -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_invoice_link.CreateInvoiceLink.provider_token:1 of -msgid "Payment provider token, obtained via `BotFather `_" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_invoice_link.CreateInvoiceLink.currency:1 of -msgid "" -"Three-letter ISO 4217 currency code, see `more on currencies " -"`_" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_invoice_link.CreateInvoiceLink.prices:1 of -msgid "" -"Price breakdown, a JSON-serialized list of components (e.g. product " -"price, tax, discount, delivery cost, delivery tax, bonus, etc.)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_invoice_link.CreateInvoiceLink.max_tip_amount:1 of -msgid "" -"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" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_invoice_link.CreateInvoiceLink.suggested_tip_amounts:1 -#: of -msgid "" -"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*." -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_invoice_link.CreateInvoiceLink.provider_data:1 of -msgid "" -"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." -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_invoice_link.CreateInvoiceLink.photo_url:1 of -msgid "" -"URL of the product photo for the invoice. Can be a photo of the goods or " -"a marketing image for a service." -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_invoice_link.CreateInvoiceLink.photo_size:1 of -msgid "Photo size in bytes" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_invoice_link.CreateInvoiceLink.photo_width:1 of -msgid "Photo width" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_invoice_link.CreateInvoiceLink.photo_height:1 of -msgid "Photo height" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_invoice_link.CreateInvoiceLink.need_name:1 of -msgid "" -"Pass :code:`True` if you require the user's full name to complete the " -"order" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_invoice_link.CreateInvoiceLink.need_phone_number:1 of -msgid "" -"Pass :code:`True` if you require the user's phone number to complete the " -"order" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_invoice_link.CreateInvoiceLink.need_email:1 of -msgid "" -"Pass :code:`True` if you require the user's email address to complete the" -" order" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_invoice_link.CreateInvoiceLink.need_shipping_address:1 -#: of -msgid "" -"Pass :code:`True` if you require the user's shipping address to complete " -"the order" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_invoice_link.CreateInvoiceLink.send_phone_number_to_provider:1 -#: of -msgid "" -"Pass :code:`True` if the user's phone number should be sent to the " -"provider" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_invoice_link.CreateInvoiceLink.send_email_to_provider:1 -#: of -msgid "" -"Pass :code:`True` if the user's email address should be sent to the " -"provider" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_invoice_link.CreateInvoiceLink.is_flexible:1 of -msgid "Pass :code:`True` if the final price depends on the shipping method" -msgstr "" - -#: ../../api/methods/create_invoice_link.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/create_invoice_link.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/create_invoice_link.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/create_invoice_link.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/create_invoice_link.rst:29 -msgid ":code:`from aiogram.methods.create_invoice_link import CreateInvoiceLink`" -msgstr "" - -#: ../../api/methods/create_invoice_link.rst:30 -msgid "alias: :code:`from aiogram.methods import CreateInvoiceLink`" -msgstr "" - -#: ../../api/methods/create_invoice_link.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/create_invoice_link.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/create_new_sticker_set.po b/docs/locale/en/LC_MESSAGES/api/methods/create_new_sticker_set.po deleted file mode 100644 index 045ca8f0..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/create_new_sticker_set.po +++ /dev/null @@ -1,190 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/methods/create_new_sticker_set.rst:3 -msgid "createNewStickerSet" -msgstr "" - -#: ../../api/methods/create_new_sticker_set.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.create_new_sticker_set.CreateNewStickerSet:1 of -msgid "" -"Use this method to create a new sticker set owned by a user. The bot will" -" be able to edit the sticker set thus created. Returns :code:`True` on " -"success." -msgstr "" - -#: aiogram.methods.create_new_sticker_set.CreateNewStickerSet:3 of -msgid "Source: https://core.telegram.org/bots/api#createnewstickerset" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_new_sticker_set.CreateNewStickerSet.user_id:1 of -msgid "User identifier of created sticker set owner" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_new_sticker_set.CreateNewStickerSet.name:1 of -msgid "" -"Short name of sticker set, to be used in :code:`t.me/addstickers/` URLs " -"(e.g., *animals*). Can contain only English letters, digits and " -"underscores. Must begin with a letter, can't contain consecutive " -"underscores and must end in :code:`\"_by_\"`. " -":code:`` is case insensitive. 1-64 characters." -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_new_sticker_set.CreateNewStickerSet.title:1 of -msgid "Sticker set title, 1-64 characters" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_new_sticker_set.CreateNewStickerSet.stickers:1 of -msgid "" -"A JSON-serialized list of 1-50 initial stickers to be added to the " -"sticker set" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_new_sticker_set.CreateNewStickerSet.sticker_format:1 -#: of -msgid "" -"Format of stickers in the set, must be one of 'static', 'animated', " -"'video'" -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_new_sticker_set.CreateNewStickerSet.sticker_type:1 of -msgid "" -"Type of stickers in the set, pass 'regular', 'mask', or 'custom_emoji'. " -"By default, a regular sticker set is created." -msgstr "" - -#: ../../docstring -#: aiogram.methods.create_new_sticker_set.CreateNewStickerSet.needs_repainting:1 -#: of -msgid "" -"Pass :code:`True` if stickers in the sticker set must be repainted to the" -" color of text when used in messages, the accent color if used as emoji " -"status, white on chat photos, or another appropriate color based on " -"context; for custom emoji sticker sets only" -msgstr "" - -#: ../../api/methods/create_new_sticker_set.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/create_new_sticker_set.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/create_new_sticker_set.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/create_new_sticker_set.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/create_new_sticker_set.rst:29 -msgid "" -":code:`from aiogram.methods.create_new_sticker_set import " -"CreateNewStickerSet`" -msgstr "" - -#: ../../api/methods/create_new_sticker_set.rst:30 -msgid "alias: :code:`from aiogram.methods import CreateNewStickerSet`" -msgstr "" - -#: ../../api/methods/create_new_sticker_set.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/create_new_sticker_set.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#~ msgid "" -#~ "Use this method to create a new" -#~ " sticker set owned by a user. " -#~ "The bot will be able to edit " -#~ "the sticker set thus created. You " -#~ "**must** use exactly one of the " -#~ "fields *png_sticker*, *tgs_sticker*, or " -#~ "*webm_sticker*. Returns :code:`True` on " -#~ "success." -#~ msgstr "" - -#~ msgid "One or more emoji corresponding to the sticker" -#~ msgstr "" - -#~ msgid "" -#~ "**PNG** image with the sticker, must " -#~ "be up to 512 kilobytes in size," -#~ " dimensions must not exceed 512px, " -#~ "and either width or height must be" -#~ " exactly 512px. 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 " -#~ "» `" -#~ msgstr "" - -#~ msgid "" -#~ "**TGS** animation with the sticker, " -#~ "uploaded using multipart/form-data. See " -#~ "`https://core.telegram.org/stickers#animated-sticker-" -#~ "requirements `_`https://core.telegram.org/stickers" -#~ "#animated-sticker-requirements " -#~ "`_ for technical requirements" -#~ msgstr "" - -#~ msgid "" -#~ "**WEBM** video with the sticker, " -#~ "uploaded using multipart/form-data. See " -#~ "`https://core.telegram.org/stickers#video-sticker-" -#~ "requirements `_`https://core.telegram.org/stickers" -#~ "#video-sticker-requirements " -#~ "`_ for technical requirements" -#~ msgstr "" - -#~ msgid "" -#~ "Type of stickers in the set, pass" -#~ " 'regular' or 'mask'. Custom emoji " -#~ "sticker sets can't be created via " -#~ "the Bot API at the moment. By " -#~ "default, a regular sticker set is " -#~ "created." -#~ msgstr "" - -#~ msgid "" -#~ "A JSON-serialized object for position" -#~ " where the mask should be placed " -#~ "on faces" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/decline_chat_join_request.po b/docs/locale/en/LC_MESSAGES/api/methods/decline_chat_join_request.po deleted file mode 100644 index 9d632f5d..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/decline_chat_join_request.po +++ /dev/null @@ -1,93 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/decline_chat_join_request.rst:3 -msgid "declineChatJoinRequest" -msgstr "" - -#: ../../api/methods/decline_chat_join_request.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.decline_chat_join_request.DeclineChatJoinRequest:1 of -msgid "" -"Use this method to decline a chat join request. The bot must be an " -"administrator in the chat for this to work and must have the " -"*can_invite_users* administrator right. Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.decline_chat_join_request.DeclineChatJoinRequest:3 of -msgid "Source: https://core.telegram.org/bots/api#declinechatjoinrequest" -msgstr "" - -#: ../../docstring -#: aiogram.methods.decline_chat_join_request.DeclineChatJoinRequest.chat_id:1 -#: of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.decline_chat_join_request.DeclineChatJoinRequest.user_id:1 -#: of -msgid "Unique identifier of the target user" -msgstr "" - -#: ../../api/methods/decline_chat_join_request.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/decline_chat_join_request.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/decline_chat_join_request.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/decline_chat_join_request.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/decline_chat_join_request.rst:29 -msgid "" -":code:`from aiogram.methods.decline_chat_join_request import " -"DeclineChatJoinRequest`" -msgstr "" - -#: ../../api/methods/decline_chat_join_request.rst:30 -msgid "alias: :code:`from aiogram.methods import DeclineChatJoinRequest`" -msgstr "" - -#: ../../api/methods/decline_chat_join_request.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/decline_chat_join_request.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/decline_chat_join_request.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/decline_chat_join_request.rst:50 -msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.decline`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/delete_chat_photo.po b/docs/locale/en/LC_MESSAGES/api/methods/delete_chat_photo.po deleted file mode 100644 index 758102ab..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/delete_chat_photo.po +++ /dev/null @@ -1,85 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/delete_chat_photo.rst:3 -msgid "deleteChatPhoto" -msgstr "" - -#: ../../api/methods/delete_chat_photo.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.delete_chat_photo.DeleteChatPhoto:1 of -msgid "" -"Use this method to delete a chat photo. Photos can't be changed for " -"private chats. The bot must be an administrator in the chat for this to " -"work and must have the appropriate administrator rights. Returns " -":code:`True` on success." -msgstr "" - -#: aiogram.methods.delete_chat_photo.DeleteChatPhoto:3 of -msgid "Source: https://core.telegram.org/bots/api#deletechatphoto" -msgstr "" - -#: ../../docstring aiogram.methods.delete_chat_photo.DeleteChatPhoto.chat_id:1 -#: of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../api/methods/delete_chat_photo.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/delete_chat_photo.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/delete_chat_photo.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/delete_chat_photo.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/delete_chat_photo.rst:29 -msgid ":code:`from aiogram.methods.delete_chat_photo import DeleteChatPhoto`" -msgstr "" - -#: ../../api/methods/delete_chat_photo.rst:30 -msgid "alias: :code:`from aiogram.methods import DeleteChatPhoto`" -msgstr "" - -#: ../../api/methods/delete_chat_photo.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/delete_chat_photo.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/delete_chat_photo.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/delete_chat_photo.rst:50 -msgid ":meth:`aiogram.types.chat.Chat.delete_photo`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/delete_chat_sticker_set.po b/docs/locale/en/LC_MESSAGES/api/methods/delete_chat_sticker_set.po deleted file mode 100644 index 3b5e8332..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/delete_chat_sticker_set.po +++ /dev/null @@ -1,89 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/delete_chat_sticker_set.rst:3 -msgid "deleteChatStickerSet" -msgstr "" - -#: ../../api/methods/delete_chat_sticker_set.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.delete_chat_sticker_set.DeleteChatStickerSet:1 of -msgid "" -"Use this method to delete a group sticker set from a supergroup. The bot " -"must be an administrator in the chat for this to work and must have the " -"appropriate administrator rights. Use the field *can_set_sticker_set* " -"optionally returned in :class:`aiogram.methods.get_chat.GetChat` requests" -" to check if the bot can use this method. Returns :code:`True` on " -"success." -msgstr "" - -#: aiogram.methods.delete_chat_sticker_set.DeleteChatStickerSet:3 of -msgid "Source: https://core.telegram.org/bots/api#deletechatstickerset" -msgstr "" - -#: ../../docstring -#: aiogram.methods.delete_chat_sticker_set.DeleteChatStickerSet.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup (in the format :code:`@supergroupusername`)" -msgstr "" - -#: ../../api/methods/delete_chat_sticker_set.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/delete_chat_sticker_set.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/delete_chat_sticker_set.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/delete_chat_sticker_set.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/delete_chat_sticker_set.rst:29 -msgid "" -":code:`from aiogram.methods.delete_chat_sticker_set import " -"DeleteChatStickerSet`" -msgstr "" - -#: ../../api/methods/delete_chat_sticker_set.rst:30 -msgid "alias: :code:`from aiogram.methods import DeleteChatStickerSet`" -msgstr "" - -#: ../../api/methods/delete_chat_sticker_set.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/delete_chat_sticker_set.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/delete_chat_sticker_set.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/delete_chat_sticker_set.rst:50 -msgid ":meth:`aiogram.types.chat.Chat.delete_sticker_set`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/delete_forum_topic.po b/docs/locale/en/LC_MESSAGES/api/methods/delete_forum_topic.po deleted file mode 100644 index 4d2c0306..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/delete_forum_topic.po +++ /dev/null @@ -1,82 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/delete_forum_topic.rst:3 -msgid "deleteForumTopic" -msgstr "" - -#: ../../api/methods/delete_forum_topic.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.delete_forum_topic.DeleteForumTopic:1 of -msgid "" -"Use this method to delete a forum topic along with all its messages in a " -"forum supergroup chat. The bot must be an administrator in the chat for " -"this to work and must have the *can_delete_messages* administrator " -"rights. Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.delete_forum_topic.DeleteForumTopic:3 of -msgid "Source: https://core.telegram.org/bots/api#deleteforumtopic" -msgstr "" - -#: ../../docstring -#: aiogram.methods.delete_forum_topic.DeleteForumTopic.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup (in the format :code:`@supergroupusername`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.delete_forum_topic.DeleteForumTopic.message_thread_id:1 of -msgid "Unique identifier for the target message thread of the forum topic" -msgstr "" - -#: ../../api/methods/delete_forum_topic.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/delete_forum_topic.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/delete_forum_topic.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/delete_forum_topic.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/delete_forum_topic.rst:29 -msgid ":code:`from aiogram.methods.delete_forum_topic import DeleteForumTopic`" -msgstr "" - -#: ../../api/methods/delete_forum_topic.rst:30 -msgid "alias: :code:`from aiogram.methods import DeleteForumTopic`" -msgstr "" - -#: ../../api/methods/delete_forum_topic.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/delete_forum_topic.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/delete_message.po b/docs/locale/en/LC_MESSAGES/api/methods/delete_message.po deleted file mode 100644 index d2a793d3..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/delete_message.po +++ /dev/null @@ -1,138 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/delete_message.rst:3 -msgid "deleteMessage" -msgstr "" - -#: ../../api/methods/delete_message.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.delete_message.DeleteMessage:1 of -msgid "" -"Use this method to delete a message, including service messages, with the" -" following limitations:" -msgstr "" - -#: aiogram.methods.delete_message.DeleteMessage:3 of -msgid "A message can only be deleted if it was sent less than 48 hours ago." -msgstr "" - -#: aiogram.methods.delete_message.DeleteMessage:5 of -msgid "" -"Service messages about a supergroup, channel, or forum topic creation " -"can't be deleted." -msgstr "" - -#: aiogram.methods.delete_message.DeleteMessage:7 of -msgid "" -"A dice message in a private chat can only be deleted if it was sent more " -"than 24 hours ago." -msgstr "" - -#: aiogram.methods.delete_message.DeleteMessage:9 of -msgid "" -"Bots can delete outgoing messages in private chats, groups, and " -"supergroups." -msgstr "" - -#: aiogram.methods.delete_message.DeleteMessage:11 of -msgid "Bots can delete incoming messages in private chats." -msgstr "" - -#: aiogram.methods.delete_message.DeleteMessage:13 of -msgid "" -"Bots granted *can_post_messages* permissions can delete outgoing messages" -" in channels." -msgstr "" - -#: aiogram.methods.delete_message.DeleteMessage:15 of -msgid "" -"If the bot is an administrator of a group, it can delete any message " -"there." -msgstr "" - -#: aiogram.methods.delete_message.DeleteMessage:17 of -msgid "" -"If the bot has *can_delete_messages* permission in a supergroup or a " -"channel, it can delete any message there." -msgstr "" - -#: aiogram.methods.delete_message.DeleteMessage:19 of -msgid "Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.delete_message.DeleteMessage:21 of -msgid "Source: https://core.telegram.org/bots/api#deletemessage" -msgstr "" - -#: ../../docstring aiogram.methods.delete_message.DeleteMessage.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.delete_message.DeleteMessage.message_id:1 of -msgid "Identifier of the message to delete" -msgstr "" - -#: ../../api/methods/delete_message.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/delete_message.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/delete_message.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/delete_message.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/delete_message.rst:29 -msgid ":code:`from aiogram.methods.delete_message import DeleteMessage`" -msgstr "" - -#: ../../api/methods/delete_message.rst:30 -msgid "alias: :code:`from aiogram.methods import DeleteMessage`" -msgstr "" - -#: ../../api/methods/delete_message.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/delete_message.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/delete_message.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/delete_message.rst:50 -msgid ":meth:`aiogram.types.message.Message.delete`" -msgstr "" - -#: ../../api/methods/delete_message.rst:51 -msgid ":meth:`aiogram.types.chat.Chat.delete_message`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/delete_my_commands.po b/docs/locale/en/LC_MESSAGES/api/methods/delete_my_commands.po deleted file mode 100644 index aaf9cc3a..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/delete_my_commands.po +++ /dev/null @@ -1,86 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/delete_my_commands.rst:3 -msgid "deleteMyCommands" -msgstr "" - -#: ../../api/methods/delete_my_commands.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.delete_my_commands.DeleteMyCommands:1 of -msgid "" -"Use this method to delete the list of the bot's commands for the given " -"scope and user language. After deletion, `higher level commands " -"`_ will " -"be shown to affected users. Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.delete_my_commands.DeleteMyCommands:3 of -msgid "Source: https://core.telegram.org/bots/api#deletemycommands" -msgstr "" - -#: ../../docstring aiogram.methods.delete_my_commands.DeleteMyCommands.scope:1 -#: of -msgid "" -"A JSON-serialized object, describing scope of users for which the " -"commands are relevant. Defaults to " -":class:`aiogram.types.bot_command_scope_default.BotCommandScopeDefault`." -msgstr "" - -#: ../../docstring -#: aiogram.methods.delete_my_commands.DeleteMyCommands.language_code:1 of -msgid "" -"A two-letter ISO 639-1 language code. If empty, commands will be applied " -"to all users from the given scope, for whose language there are no " -"dedicated commands" -msgstr "" - -#: ../../api/methods/delete_my_commands.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/delete_my_commands.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/delete_my_commands.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/delete_my_commands.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/delete_my_commands.rst:29 -msgid ":code:`from aiogram.methods.delete_my_commands import DeleteMyCommands`" -msgstr "" - -#: ../../api/methods/delete_my_commands.rst:30 -msgid "alias: :code:`from aiogram.methods import DeleteMyCommands`" -msgstr "" - -#: ../../api/methods/delete_my_commands.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/delete_my_commands.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/delete_sticker_from_set.po b/docs/locale/en/LC_MESSAGES/api/methods/delete_sticker_from_set.po deleted file mode 100644 index e14f9081..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/delete_sticker_from_set.po +++ /dev/null @@ -1,83 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/delete_sticker_from_set.rst:3 -msgid "deleteStickerFromSet" -msgstr "" - -#: ../../api/methods/delete_sticker_from_set.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.delete_sticker_from_set.DeleteStickerFromSet:1 of -msgid "" -"Use this method to delete a sticker from a set created by the bot. " -"Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.delete_sticker_from_set.DeleteStickerFromSet:3 of -msgid "Source: https://core.telegram.org/bots/api#deletestickerfromset" -msgstr "" - -#: ../../docstring -#: aiogram.methods.delete_sticker_from_set.DeleteStickerFromSet.sticker:1 of -msgid "File identifier of the sticker" -msgstr "" - -#: ../../api/methods/delete_sticker_from_set.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/delete_sticker_from_set.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/delete_sticker_from_set.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/delete_sticker_from_set.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/delete_sticker_from_set.rst:29 -msgid "" -":code:`from aiogram.methods.delete_sticker_from_set import " -"DeleteStickerFromSet`" -msgstr "" - -#: ../../api/methods/delete_sticker_from_set.rst:30 -msgid "alias: :code:`from aiogram.methods import DeleteStickerFromSet`" -msgstr "" - -#: ../../api/methods/delete_sticker_from_set.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/delete_sticker_from_set.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/delete_sticker_from_set.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/delete_sticker_from_set.rst:50 -msgid ":meth:`aiogram.types.sticker.Sticker.delete_from_set`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/delete_sticker_set.po b/docs/locale/en/LC_MESSAGES/api/methods/delete_sticker_set.po deleted file mode 100644 index b0d56a23..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/delete_sticker_set.po +++ /dev/null @@ -1,73 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2023, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2023. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/methods/delete_sticker_set.rst:3 -msgid "deleteStickerSet" -msgstr "" - -#: ../../api/methods/delete_sticker_set.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.delete_sticker_set.DeleteStickerSet:1 of -msgid "" -"Use this method to delete a sticker set that was created by the bot. " -"Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.delete_sticker_set.DeleteStickerSet:3 of -msgid "Source: https://core.telegram.org/bots/api#deletestickerset" -msgstr "" - -#: ../../docstring aiogram.methods.delete_sticker_set.DeleteStickerSet.name:1 -#: of -msgid "Sticker set name" -msgstr "" - -#: ../../api/methods/delete_sticker_set.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/delete_sticker_set.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/delete_sticker_set.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/delete_sticker_set.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/delete_sticker_set.rst:29 -msgid ":code:`from aiogram.methods.delete_sticker_set import DeleteStickerSet`" -msgstr "" - -#: ../../api/methods/delete_sticker_set.rst:30 -msgid "alias: :code:`from aiogram.methods import DeleteStickerSet`" -msgstr "" - -#: ../../api/methods/delete_sticker_set.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/delete_sticker_set.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/delete_webhook.po b/docs/locale/en/LC_MESSAGES/api/methods/delete_webhook.po deleted file mode 100644 index bdd1e2ec..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/delete_webhook.po +++ /dev/null @@ -1,74 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/delete_webhook.rst:3 -msgid "deleteWebhook" -msgstr "" - -#: ../../api/methods/delete_webhook.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.delete_webhook.DeleteWebhook:1 of -msgid "" -"Use this method to remove webhook integration if you decide to switch " -"back to :class:`aiogram.methods.get_updates.GetUpdates`. Returns " -":code:`True` on success." -msgstr "" - -#: aiogram.methods.delete_webhook.DeleteWebhook:3 of -msgid "Source: https://core.telegram.org/bots/api#deletewebhook" -msgstr "" - -#: ../../docstring -#: aiogram.methods.delete_webhook.DeleteWebhook.drop_pending_updates:1 of -msgid "Pass :code:`True` to drop all pending updates" -msgstr "" - -#: ../../api/methods/delete_webhook.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/delete_webhook.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/delete_webhook.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/delete_webhook.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/delete_webhook.rst:29 -msgid ":code:`from aiogram.methods.delete_webhook import DeleteWebhook`" -msgstr "" - -#: ../../api/methods/delete_webhook.rst:30 -msgid "alias: :code:`from aiogram.methods import DeleteWebhook`" -msgstr "" - -#: ../../api/methods/delete_webhook.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/delete_webhook.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/edit_chat_invite_link.po b/docs/locale/en/LC_MESSAGES/api/methods/edit_chat_invite_link.po deleted file mode 100644 index 6efd01b1..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/edit_chat_invite_link.po +++ /dev/null @@ -1,118 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/edit_chat_invite_link.rst:3 -msgid "editChatInviteLink" -msgstr "" - -#: ../../api/methods/edit_chat_invite_link.rst:5 -msgid "Returns: :obj:`ChatInviteLink`" -msgstr "" - -#: aiogram.methods.edit_chat_invite_link.EditChatInviteLink:1 of -msgid "" -"Use this method to edit a non-primary invite link created by the bot. The" -" bot must be an administrator in the chat for this to work and must have " -"the appropriate administrator rights. Returns the edited invite link as a" -" :class:`aiogram.types.chat_invite_link.ChatInviteLink` object." -msgstr "" - -#: aiogram.methods.edit_chat_invite_link.EditChatInviteLink:3 of -msgid "Source: https://core.telegram.org/bots/api#editchatinvitelink" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_chat_invite_link.EditChatInviteLink.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_chat_invite_link.EditChatInviteLink.invite_link:1 of -msgid "The invite link to edit" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_chat_invite_link.EditChatInviteLink.name:1 of -msgid "Invite link name; 0-32 characters" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_chat_invite_link.EditChatInviteLink.expire_date:1 of -msgid "Point in time (Unix timestamp) when the link will expire" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_chat_invite_link.EditChatInviteLink.member_limit:1 of -msgid "" -"The maximum number of users that can be members of the chat " -"simultaneously after joining the chat via this invite link; 1-99999" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_chat_invite_link.EditChatInviteLink.creates_join_request:1 -#: of -msgid "" -":code:`True`, if users joining the chat via the link need to be approved " -"by chat administrators. If :code:`True`, *member_limit* can't be " -"specified" -msgstr "" - -#: ../../api/methods/edit_chat_invite_link.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/edit_chat_invite_link.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/edit_chat_invite_link.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/edit_chat_invite_link.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/edit_chat_invite_link.rst:29 -msgid "" -":code:`from aiogram.methods.edit_chat_invite_link import " -"EditChatInviteLink`" -msgstr "" - -#: ../../api/methods/edit_chat_invite_link.rst:30 -msgid "alias: :code:`from aiogram.methods import EditChatInviteLink`" -msgstr "" - -#: ../../api/methods/edit_chat_invite_link.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/edit_chat_invite_link.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/edit_chat_invite_link.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/edit_chat_invite_link.rst:50 -msgid ":meth:`aiogram.types.chat.Chat.edit_invite_link`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/edit_forum_topic.po b/docs/locale/en/LC_MESSAGES/api/methods/edit_forum_topic.po deleted file mode 100644 index bf582c84..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/edit_forum_topic.po +++ /dev/null @@ -1,96 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-07 23:01+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/edit_forum_topic.rst:3 -msgid "editForumTopic" -msgstr "" - -#: ../../api/methods/edit_forum_topic.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.edit_forum_topic.EditForumTopic:1 of -msgid "" -"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." -msgstr "" - -#: aiogram.methods.edit_forum_topic.EditForumTopic:3 of -msgid "Source: https://core.telegram.org/bots/api#editforumtopic" -msgstr "" - -#: ../../docstring aiogram.methods.edit_forum_topic.EditForumTopic.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup (in the format :code:`@supergroupusername`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_forum_topic.EditForumTopic.message_thread_id:1 of -msgid "Unique identifier for the target message thread of the forum topic" -msgstr "" - -#: ../../docstring aiogram.methods.edit_forum_topic.EditForumTopic.name:1 of -msgid "" -"New topic name, 0-128 characters. If not specified or empty, the current " -"name of the topic will be kept" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_forum_topic.EditForumTopic.icon_custom_emoji_id:1 of -msgid "" -"New unique identifier of the custom emoji shown as the topic icon. Use " -":class:`aiogram.methods.get_forum_topic_icon_stickers.GetForumTopicIconStickers`" -" to get all allowed custom emoji identifiers. Pass an empty string to " -"remove the icon. If not specified, the current icon will be kept" -msgstr "" - -#: ../../api/methods/edit_forum_topic.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/edit_forum_topic.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/edit_forum_topic.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/edit_forum_topic.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/edit_forum_topic.rst:29 -msgid ":code:`from aiogram.methods.edit_forum_topic import EditForumTopic`" -msgstr "" - -#: ../../api/methods/edit_forum_topic.rst:30 -msgid "alias: :code:`from aiogram.methods import EditForumTopic`" -msgstr "" - -#: ../../api/methods/edit_forum_topic.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/edit_forum_topic.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/edit_general_forum_topic.po b/docs/locale/en/LC_MESSAGES/api/methods/edit_general_forum_topic.po deleted file mode 100644 index 75700ab7..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/edit_general_forum_topic.po +++ /dev/null @@ -1,84 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/edit_general_forum_topic.rst:3 -msgid "editGeneralForumTopic" -msgstr "" - -#: ../../api/methods/edit_general_forum_topic.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.edit_general_forum_topic.EditGeneralForumTopic:1 of -msgid "" -"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." -msgstr "" - -#: aiogram.methods.edit_general_forum_topic.EditGeneralForumTopic:3 of -msgid "Source: https://core.telegram.org/bots/api#editgeneralforumtopic" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_general_forum_topic.EditGeneralForumTopic.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup (in the format :code:`@supergroupusername`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_general_forum_topic.EditGeneralForumTopic.name:1 of -msgid "New topic name, 1-128 characters" -msgstr "" - -#: ../../api/methods/edit_general_forum_topic.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/edit_general_forum_topic.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/edit_general_forum_topic.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/edit_general_forum_topic.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/edit_general_forum_topic.rst:29 -msgid "" -":code:`from aiogram.methods.edit_general_forum_topic import " -"EditGeneralForumTopic`" -msgstr "" - -#: ../../api/methods/edit_general_forum_topic.rst:30 -msgid "alias: :code:`from aiogram.methods import EditGeneralForumTopic`" -msgstr "" - -#: ../../api/methods/edit_general_forum_topic.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/edit_general_forum_topic.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/edit_message_caption.po b/docs/locale/en/LC_MESSAGES/api/methods/edit_message_caption.po deleted file mode 100644 index a566ee5e..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/edit_message_caption.po +++ /dev/null @@ -1,138 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/edit_message_caption.rst:3 -msgid "editMessageCaption" -msgstr "" - -#: ../../api/methods/edit_message_caption.rst:5 -msgid "Returns: :obj:`Union[Message, bool]`" -msgstr "" - -#: aiogram.methods.edit_message_caption.EditMessageCaption:1 of -msgid "" -"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." -msgstr "" - -#: aiogram.methods.edit_message_caption.EditMessageCaption:3 of -msgid "Source: https://core.telegram.org/bots/api#editmessagecaption" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_caption.EditMessageCaption.chat_id:1 of -msgid "" -"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`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_caption.EditMessageCaption.message_id:1 of -msgid "" -"Required if *inline_message_id* is not specified. Identifier of the " -"message to edit" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_caption.EditMessageCaption.inline_message_id:1 -#: of -msgid "" -"Required if *chat_id* and *message_id* are not specified. Identifier of " -"the inline message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_caption.EditMessageCaption.caption:1 of -msgid "New caption of the message, 0-1024 characters after entities parsing" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_caption.EditMessageCaption.parse_mode:1 of -msgid "" -"Mode for parsing entities in the message caption. See `formatting options" -" `_ for more " -"details." -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_caption.EditMessageCaption.caption_entities:1 -#: of -msgid "" -"A JSON-serialized list of special entities that appear in the caption, " -"which can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_caption.EditMessageCaption.reply_markup:1 of -msgid "" -"A JSON-serialized object for an `inline keyboard " -"`_." -msgstr "" - -#: ../../api/methods/edit_message_caption.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/edit_message_caption.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/edit_message_caption.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/edit_message_caption.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/edit_message_caption.rst:29 -msgid "" -":code:`from aiogram.methods.edit_message_caption import " -"EditMessageCaption`" -msgstr "" - -#: ../../api/methods/edit_message_caption.rst:30 -msgid "alias: :code:`from aiogram.methods import EditMessageCaption`" -msgstr "" - -#: ../../api/methods/edit_message_caption.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/edit_message_caption.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/edit_message_caption.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/edit_message_caption.rst:50 -msgid ":meth:`aiogram.types.message.Message.edit_caption`" -msgstr "" - -#~ msgid "" -#~ "A JSON-serialized object for an " -#~ "`inline keyboard `_." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/edit_message_live_location.po b/docs/locale/en/LC_MESSAGES/api/methods/edit_message_live_location.po deleted file mode 100644 index 2e129074..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/edit_message_live_location.po +++ /dev/null @@ -1,160 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/edit_message_live_location.rst:3 -msgid "editMessageLiveLocation" -msgstr "" - -#: ../../api/methods/edit_message_live_location.rst:5 -msgid "Returns: :obj:`Union[Message, bool]`" -msgstr "" - -#: aiogram.methods.edit_message_live_location.EditMessageLiveLocation:1 of -msgid "" -"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." -msgstr "" - -#: aiogram.methods.edit_message_live_location.EditMessageLiveLocation:3 of -msgid "Source: https://core.telegram.org/bots/api#editmessagelivelocation" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_live_location.EditMessageLiveLocation.latitude:1 -#: of -msgid "Latitude of new location" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_live_location.EditMessageLiveLocation.longitude:1 -#: of -msgid "Longitude of new location" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_live_location.EditMessageLiveLocation.chat_id:1 -#: of -msgid "" -"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`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_live_location.EditMessageLiveLocation.message_id:1 -#: of -msgid "" -"Required if *inline_message_id* is not specified. Identifier of the " -"message to edit" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_live_location.EditMessageLiveLocation.inline_message_id:1 -#: of -msgid "" -"Required if *chat_id* and *message_id* are not specified. Identifier of " -"the inline message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_live_location.EditMessageLiveLocation.horizontal_accuracy:1 -#: of -msgid "The radius of uncertainty for the location, measured in meters; 0-1500" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_live_location.EditMessageLiveLocation.heading:1 -#: of -msgid "" -"Direction in which the user is moving, in degrees. Must be between 1 and " -"360 if specified." -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_live_location.EditMessageLiveLocation.proximity_alert_radius:1 -#: of -msgid "" -"The maximum distance for proximity alerts about approaching another chat " -"member, in meters. Must be between 1 and 100000 if specified." -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_live_location.EditMessageLiveLocation.reply_markup:1 -#: of -msgid "" -"A JSON-serialized object for a new `inline keyboard " -"`_." -msgstr "" - -#: ../../api/methods/edit_message_live_location.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/edit_message_live_location.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/edit_message_live_location.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/edit_message_live_location.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/edit_message_live_location.rst:29 -msgid "" -":code:`from aiogram.methods.edit_message_live_location import " -"EditMessageLiveLocation`" -msgstr "" - -#: ../../api/methods/edit_message_live_location.rst:30 -msgid "alias: :code:`from aiogram.methods import EditMessageLiveLocation`" -msgstr "" - -#: ../../api/methods/edit_message_live_location.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/edit_message_live_location.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/edit_message_live_location.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/edit_message_live_location.rst:50 -msgid ":meth:`aiogram.types.message.Message.edit_live_location`" -msgstr "" - -#~ msgid "" -#~ "A JSON-serialized object for a new" -#~ " `inline keyboard `_." -#~ msgstr "" - -#~ msgid "As message method" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/edit_message_media.po b/docs/locale/en/LC_MESSAGES/api/methods/edit_message_media.po deleted file mode 100644 index afb32662..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/edit_message_media.po +++ /dev/null @@ -1,126 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/edit_message_media.rst:3 -msgid "editMessageMedia" -msgstr "" - -#: ../../api/methods/edit_message_media.rst:5 -msgid "Returns: :obj:`Union[Message, bool]`" -msgstr "" - -#: aiogram.methods.edit_message_media.EditMessageMedia:1 of -msgid "" -"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." -msgstr "" - -#: aiogram.methods.edit_message_media.EditMessageMedia:3 of -msgid "Source: https://core.telegram.org/bots/api#editmessagemedia" -msgstr "" - -#: ../../docstring aiogram.methods.edit_message_media.EditMessageMedia.media:1 -#: of -msgid "A JSON-serialized object for a new media content of the message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_media.EditMessageMedia.chat_id:1 of -msgid "" -"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`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_media.EditMessageMedia.message_id:1 of -msgid "" -"Required if *inline_message_id* is not specified. Identifier of the " -"message to edit" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_media.EditMessageMedia.inline_message_id:1 of -msgid "" -"Required if *chat_id* and *message_id* are not specified. Identifier of " -"the inline message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_media.EditMessageMedia.reply_markup:1 of -msgid "" -"A JSON-serialized object for a new `inline keyboard " -"`_." -msgstr "" - -#: ../../api/methods/edit_message_media.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/edit_message_media.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/edit_message_media.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/edit_message_media.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/edit_message_media.rst:29 -msgid ":code:`from aiogram.methods.edit_message_media import EditMessageMedia`" -msgstr "" - -#: ../../api/methods/edit_message_media.rst:30 -msgid "alias: :code:`from aiogram.methods import EditMessageMedia`" -msgstr "" - -#: ../../api/methods/edit_message_media.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/edit_message_media.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/edit_message_media.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/edit_message_media.rst:50 -msgid ":meth:`aiogram.types.message.Message.edit_media`" -msgstr "" - -#~ msgid "" -#~ "A JSON-serialized object for a new" -#~ " `inline keyboard `_." -#~ msgstr "" - -#~ msgid "As message method" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/edit_message_reply_markup.po b/docs/locale/en/LC_MESSAGES/api/methods/edit_message_reply_markup.po deleted file mode 100644 index d8a3b25d..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/edit_message_reply_markup.po +++ /dev/null @@ -1,120 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/edit_message_reply_markup.rst:3 -msgid "editMessageReplyMarkup" -msgstr "" - -#: ../../api/methods/edit_message_reply_markup.rst:5 -msgid "Returns: :obj:`Union[Message, bool]`" -msgstr "" - -#: aiogram.methods.edit_message_reply_markup.EditMessageReplyMarkup:1 of -msgid "" -"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." -msgstr "" - -#: aiogram.methods.edit_message_reply_markup.EditMessageReplyMarkup:3 of -msgid "Source: https://core.telegram.org/bots/api#editmessagereplymarkup" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_reply_markup.EditMessageReplyMarkup.chat_id:1 -#: of -msgid "" -"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`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_reply_markup.EditMessageReplyMarkup.message_id:1 -#: of -msgid "" -"Required if *inline_message_id* is not specified. Identifier of the " -"message to edit" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_reply_markup.EditMessageReplyMarkup.inline_message_id:1 -#: of -msgid "" -"Required if *chat_id* and *message_id* are not specified. Identifier of " -"the inline message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_reply_markup.EditMessageReplyMarkup.reply_markup:1 -#: of -msgid "" -"A JSON-serialized object for an `inline keyboard " -"`_." -msgstr "" - -#: ../../api/methods/edit_message_reply_markup.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/edit_message_reply_markup.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/edit_message_reply_markup.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/edit_message_reply_markup.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/edit_message_reply_markup.rst:29 -msgid "" -":code:`from aiogram.methods.edit_message_reply_markup import " -"EditMessageReplyMarkup`" -msgstr "" - -#: ../../api/methods/edit_message_reply_markup.rst:30 -msgid "alias: :code:`from aiogram.methods import EditMessageReplyMarkup`" -msgstr "" - -#: ../../api/methods/edit_message_reply_markup.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/edit_message_reply_markup.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/edit_message_reply_markup.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/edit_message_reply_markup.rst:50 -msgid ":meth:`aiogram.types.message.Message.edit_reply_markup`" -msgstr "" - -#~ msgid "" -#~ "A JSON-serialized object for an " -#~ "`inline keyboard `_." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/edit_message_text.po b/docs/locale/en/LC_MESSAGES/api/methods/edit_message_text.po deleted file mode 100644 index a4662b9b..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/edit_message_text.po +++ /dev/null @@ -1,140 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/edit_message_text.rst:3 -msgid "editMessageText" -msgstr "" - -#: ../../api/methods/edit_message_text.rst:5 -msgid "Returns: :obj:`Union[Message, bool]`" -msgstr "" - -#: aiogram.methods.edit_message_text.EditMessageText:1 of -msgid "" -"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." -msgstr "" - -#: aiogram.methods.edit_message_text.EditMessageText:3 of -msgid "Source: https://core.telegram.org/bots/api#editmessagetext" -msgstr "" - -#: ../../docstring aiogram.methods.edit_message_text.EditMessageText.text:1 of -msgid "New text of the message, 1-4096 characters after entities parsing" -msgstr "" - -#: ../../docstring aiogram.methods.edit_message_text.EditMessageText.chat_id:1 -#: of -msgid "" -"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`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_text.EditMessageText.message_id:1 of -msgid "" -"Required if *inline_message_id* is not specified. Identifier of the " -"message to edit" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_text.EditMessageText.inline_message_id:1 of -msgid "" -"Required if *chat_id* and *message_id* are not specified. Identifier of " -"the inline message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_text.EditMessageText.parse_mode:1 of -msgid "" -"Mode for parsing entities in the message text. See `formatting options " -"`_ for more " -"details." -msgstr "" - -#: ../../docstring aiogram.methods.edit_message_text.EditMessageText.entities:1 -#: of -msgid "" -"A JSON-serialized list of special entities that appear in message text, " -"which can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_text.EditMessageText.disable_web_page_preview:1 -#: of -msgid "Disables link previews for links in this message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.edit_message_text.EditMessageText.reply_markup:1 of -msgid "" -"A JSON-serialized object for an `inline keyboard " -"`_." -msgstr "" - -#: ../../api/methods/edit_message_text.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/edit_message_text.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/edit_message_text.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/edit_message_text.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/edit_message_text.rst:29 -msgid ":code:`from aiogram.methods.edit_message_text import EditMessageText`" -msgstr "" - -#: ../../api/methods/edit_message_text.rst:30 -msgid "alias: :code:`from aiogram.methods import EditMessageText`" -msgstr "" - -#: ../../api/methods/edit_message_text.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/edit_message_text.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/edit_message_text.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/edit_message_text.rst:50 -msgid ":meth:`aiogram.types.message.Message.edit_text`" -msgstr "" - -#~ msgid "" -#~ "A JSON-serialized object for an " -#~ "`inline keyboard `_." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/export_chat_invite_link.po b/docs/locale/en/LC_MESSAGES/api/methods/export_chat_invite_link.po deleted file mode 100644 index 3615e48d..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/export_chat_invite_link.po +++ /dev/null @@ -1,101 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/export_chat_invite_link.rst:3 -msgid "exportChatInviteLink" -msgstr "" - -#: ../../api/methods/export_chat_invite_link.rst:5 -msgid "Returns: :obj:`str`" -msgstr "" - -#: aiogram.methods.export_chat_invite_link.ExportChatInviteLink:1 of -msgid "" -"Use this method to generate a new primary invite link for a chat; any " -"previously generated primary link is revoked. The bot must be an " -"administrator in the chat for this to work and must have the appropriate " -"administrator rights. Returns the new invite link as *String* on success." -msgstr "" - -#: aiogram.methods.export_chat_invite_link.ExportChatInviteLink:3 of -msgid "" -"Note: Each administrator in a chat generates their own invite links. Bots" -" can't use invite links generated by other administrators. If you want " -"your bot to work with invite links, it will need to generate its own link" -" using " -":class:`aiogram.methods.export_chat_invite_link.ExportChatInviteLink` or " -"by calling the :class:`aiogram.methods.get_chat.GetChat` method. If your " -"bot needs to generate a new primary invite link replacing its previous " -"one, use " -":class:`aiogram.methods.export_chat_invite_link.ExportChatInviteLink` " -"again." -msgstr "" - -#: aiogram.methods.export_chat_invite_link.ExportChatInviteLink:5 of -msgid "Source: https://core.telegram.org/bots/api#exportchatinvitelink" -msgstr "" - -#: ../../docstring -#: aiogram.methods.export_chat_invite_link.ExportChatInviteLink.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../api/methods/export_chat_invite_link.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/export_chat_invite_link.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/export_chat_invite_link.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/export_chat_invite_link.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/export_chat_invite_link.rst:29 -msgid "" -":code:`from aiogram.methods.export_chat_invite_link import " -"ExportChatInviteLink`" -msgstr "" - -#: ../../api/methods/export_chat_invite_link.rst:30 -msgid "alias: :code:`from aiogram.methods import ExportChatInviteLink`" -msgstr "" - -#: ../../api/methods/export_chat_invite_link.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/export_chat_invite_link.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/export_chat_invite_link.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/export_chat_invite_link.rst:50 -msgid ":meth:`aiogram.types.chat.Chat.export_invite_link`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/forward_message.po b/docs/locale/en/LC_MESSAGES/api/methods/forward_message.po deleted file mode 100644 index 43f90fbf..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/forward_message.po +++ /dev/null @@ -1,117 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/forward_message.rst:3 -msgid "forwardMessage" -msgstr "" - -#: ../../api/methods/forward_message.rst:5 -msgid "Returns: :obj:`Message`" -msgstr "" - -#: aiogram.methods.forward_message.ForwardMessage:1 of -msgid "" -"Use this method to forward messages of any kind. Service messages can't " -"be forwarded. On success, the sent :class:`aiogram.types.message.Message`" -" is returned." -msgstr "" - -#: aiogram.methods.forward_message.ForwardMessage:3 of -msgid "Source: https://core.telegram.org/bots/api#forwardmessage" -msgstr "" - -#: ../../docstring aiogram.methods.forward_message.ForwardMessage.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.forward_message.ForwardMessage.from_chat_id:1 of -msgid "" -"Unique identifier for the chat where the original message was sent (or " -"channel username in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.forward_message.ForwardMessage.message_id:1 -#: of -msgid "Message identifier in the chat specified in *from_chat_id*" -msgstr "" - -#: ../../docstring -#: aiogram.methods.forward_message.ForwardMessage.message_thread_id:1 of -msgid "" -"Unique identifier for the target message thread (topic) of the forum; for" -" forum supergroups only" -msgstr "" - -#: ../../docstring -#: aiogram.methods.forward_message.ForwardMessage.disable_notification:1 of -msgid "" -"Sends the message `silently `_. Users will receive a notification with no sound." -msgstr "" - -#: ../../docstring -#: aiogram.methods.forward_message.ForwardMessage.protect_content:1 of -msgid "Protects the contents of the forwarded message from forwarding and saving" -msgstr "" - -#: ../../api/methods/forward_message.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/forward_message.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/forward_message.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/forward_message.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/forward_message.rst:29 -msgid ":code:`from aiogram.methods.forward_message import ForwardMessage`" -msgstr "" - -#: ../../api/methods/forward_message.rst:30 -msgid "alias: :code:`from aiogram.methods import ForwardMessage`" -msgstr "" - -#: ../../api/methods/forward_message.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/forward_message.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/forward_message.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/forward_message.rst:50 -msgid ":meth:`aiogram.types.message.Message.forward`" -msgstr "" - -#~ msgid "As message method" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/get_chat.po b/docs/locale/en/LC_MESSAGES/api/methods/get_chat.po deleted file mode 100644 index 9097c834..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/get_chat.po +++ /dev/null @@ -1,72 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/get_chat.rst:3 -msgid "getChat" -msgstr "" - -#: ../../api/methods/get_chat.rst:5 -msgid "Returns: :obj:`Chat`" -msgstr "" - -#: aiogram.methods.get_chat.GetChat:1 of -msgid "" -"Use this method to get up to date information about the chat (current " -"name of the user for one-on-one conversations, current username of a " -"user, group or channel, etc.). Returns a :class:`aiogram.types.chat.Chat`" -" object on success." -msgstr "" - -#: aiogram.methods.get_chat.GetChat:3 of -msgid "Source: https://core.telegram.org/bots/api#getchat" -msgstr "" - -#: ../../docstring aiogram.methods.get_chat.GetChat.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup or channel (in the format :code:`@channelusername`)" -msgstr "" - -#: ../../api/methods/get_chat.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/get_chat.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/get_chat.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/get_chat.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/get_chat.rst:29 -msgid ":code:`from aiogram.methods.get_chat import GetChat`" -msgstr "" - -#: ../../api/methods/get_chat.rst:30 -msgid "alias: :code:`from aiogram.methods import GetChat`" -msgstr "" - -#: ../../api/methods/get_chat.rst:33 -msgid "With specific bot" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/get_chat_administrators.po b/docs/locale/en/LC_MESSAGES/api/methods/get_chat_administrators.po deleted file mode 100644 index 7700abdc..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/get_chat_administrators.po +++ /dev/null @@ -1,85 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/get_chat_administrators.rst:3 -msgid "getChatAdministrators" -msgstr "" - -#: ../../api/methods/get_chat_administrators.rst:5 -msgid "" -"Returns: :obj:`List[Union[ChatMemberOwner, ChatMemberAdministrator, " -"ChatMemberMember, ChatMemberRestricted, ChatMemberLeft, " -"ChatMemberBanned]]`" -msgstr "" - -#: aiogram.methods.get_chat_administrators.GetChatAdministrators:1 of -msgid "" -"Use this method to get a list of administrators in a chat, which aren't " -"bots. Returns an Array of :class:`aiogram.types.chat_member.ChatMember` " -"objects." -msgstr "" - -#: aiogram.methods.get_chat_administrators.GetChatAdministrators:3 of -msgid "Source: https://core.telegram.org/bots/api#getchatadministrators" -msgstr "" - -#: ../../docstring -#: aiogram.methods.get_chat_administrators.GetChatAdministrators.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup or channel (in the format :code:`@channelusername`)" -msgstr "" - -#: ../../api/methods/get_chat_administrators.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/get_chat_administrators.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/get_chat_administrators.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/get_chat_administrators.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/get_chat_administrators.rst:29 -msgid "" -":code:`from aiogram.methods.get_chat_administrators import " -"GetChatAdministrators`" -msgstr "" - -#: ../../api/methods/get_chat_administrators.rst:30 -msgid "alias: :code:`from aiogram.methods import GetChatAdministrators`" -msgstr "" - -#: ../../api/methods/get_chat_administrators.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/get_chat_administrators.rst:43 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/get_chat_administrators.rst:45 -msgid ":meth:`aiogram.types.chat.Chat.get_administrators`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/get_chat_member.po b/docs/locale/en/LC_MESSAGES/api/methods/get_chat_member.po deleted file mode 100644 index 0f6b9c1b..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/get_chat_member.po +++ /dev/null @@ -1,97 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/methods/get_chat_member.rst:3 -msgid "getChatMember" -msgstr "" - -#: ../../api/methods/get_chat_member.rst:5 -msgid "" -"Returns: :obj:`Union[ChatMemberOwner, ChatMemberAdministrator, " -"ChatMemberMember, ChatMemberRestricted, ChatMemberLeft, " -"ChatMemberBanned]`" -msgstr "" - -#: aiogram.methods.get_chat_member.GetChatMember:1 of -msgid "" -"Use this method to get information about a member of a chat. The method " -"is only guaranteed to work for other users if the bot is an administrator" -" in the chat. Returns a :class:`aiogram.types.chat_member.ChatMember` " -"object on success." -msgstr "" - -#: aiogram.methods.get_chat_member.GetChatMember:3 of -msgid "Source: https://core.telegram.org/bots/api#getchatmember" -msgstr "" - -#: ../../docstring aiogram.methods.get_chat_member.GetChatMember.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup or channel (in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.get_chat_member.GetChatMember.user_id:1 of -msgid "Unique identifier of the target user" -msgstr "" - -#: ../../api/methods/get_chat_member.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/get_chat_member.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/get_chat_member.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/get_chat_member.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/get_chat_member.rst:29 -msgid ":code:`from aiogram.methods.get_chat_member import GetChatMember`" -msgstr "" - -#: ../../api/methods/get_chat_member.rst:30 -msgid "alias: :code:`from aiogram.methods import GetChatMember`" -msgstr "" - -#: ../../api/methods/get_chat_member.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/get_chat_member.rst:43 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/get_chat_member.rst:45 -msgid ":meth:`aiogram.types.chat.Chat.get_member`" -msgstr "" - -#~ msgid "" -#~ "Use this method to get information " -#~ "about a member of a chat. The " -#~ "method is guaranteed to work for " -#~ "other users, only if the bot is" -#~ " an administrator in the chat. " -#~ "Returns a :class:`aiogram.types.chat_member.ChatMember`" -#~ " object on success." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/get_chat_member_count.po b/docs/locale/en/LC_MESSAGES/api/methods/get_chat_member_count.po deleted file mode 100644 index 6fc48c9f..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/get_chat_member_count.po +++ /dev/null @@ -1,81 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/get_chat_member_count.rst:3 -msgid "getChatMemberCount" -msgstr "" - -#: ../../api/methods/get_chat_member_count.rst:5 -msgid "Returns: :obj:`int`" -msgstr "" - -#: aiogram.methods.get_chat_member_count.GetChatMemberCount:1 of -msgid "" -"Use this method to get the number of members in a chat. Returns *Int* on " -"success." -msgstr "" - -#: aiogram.methods.get_chat_member_count.GetChatMemberCount:3 of -msgid "Source: https://core.telegram.org/bots/api#getchatmembercount" -msgstr "" - -#: ../../docstring -#: aiogram.methods.get_chat_member_count.GetChatMemberCount.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup or channel (in the format :code:`@channelusername`)" -msgstr "" - -#: ../../api/methods/get_chat_member_count.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/get_chat_member_count.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/get_chat_member_count.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/get_chat_member_count.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/get_chat_member_count.rst:29 -msgid "" -":code:`from aiogram.methods.get_chat_member_count import " -"GetChatMemberCount`" -msgstr "" - -#: ../../api/methods/get_chat_member_count.rst:30 -msgid "alias: :code:`from aiogram.methods import GetChatMemberCount`" -msgstr "" - -#: ../../api/methods/get_chat_member_count.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/get_chat_member_count.rst:43 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/get_chat_member_count.rst:45 -msgid ":meth:`aiogram.types.chat.Chat.get_member_count`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/get_chat_members_count.po b/docs/locale/en/LC_MESSAGES/api/methods/get_chat_members_count.po deleted file mode 100644 index e747a5f4..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/get_chat_members_count.po +++ /dev/null @@ -1,72 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/get_chat_members_count.rst:3 -msgid "getChatMembersCount" -msgstr "" - -#: ../../api/methods/get_chat_members_count.rst:5 -msgid "Returns: :obj:`int`" -msgstr "" - -#: ../../api/methods/get_chat_members_count.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/get_chat_members_count.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/get_chat_members_count.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/get_chat_members_count.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/get_chat_members_count.rst:29 -msgid "" -":code:`from aiogram.methods.get_chat_members_count import " -"GetChatMembersCount`" -msgstr "" - -#: ../../api/methods/get_chat_members_count.rst:30 -msgid "alias: :code:`from aiogram.methods import GetChatMembersCount`" -msgstr "" - -#: ../../api/methods/get_chat_members_count.rst:33 -msgid "With specific bot" -msgstr "" - -#~ msgid "" -#~ "Use this method to get the number" -#~ " of members in a chat. Returns " -#~ "*Int* on success." -#~ msgstr "" - -#~ msgid "Source: https://core.telegram.org/bots/api#getchatmembercount" -#~ msgstr "" - -#~ msgid "" -#~ "Unique identifier for the target chat" -#~ " or username of the target supergroup" -#~ " or channel (in the format " -#~ ":code:`@channelusername`)" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/get_chat_menu_button.po b/docs/locale/en/LC_MESSAGES/api/methods/get_chat_menu_button.po deleted file mode 100644 index 0f5e608b..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/get_chat_menu_button.po +++ /dev/null @@ -1,77 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/get_chat_menu_button.rst:3 -msgid "getChatMenuButton" -msgstr "" - -#: ../../api/methods/get_chat_menu_button.rst:5 -msgid "" -"Returns: :obj:`Union[MenuButtonDefault, MenuButtonWebApp, " -"MenuButtonCommands]`" -msgstr "" - -#: aiogram.methods.get_chat_menu_button.GetChatMenuButton:1 of -msgid "" -"Use this method to get the current value of the bot's menu button in a " -"private chat, or the default menu button. Returns " -":class:`aiogram.types.menu_button.MenuButton` on success." -msgstr "" - -#: aiogram.methods.get_chat_menu_button.GetChatMenuButton:3 of -msgid "Source: https://core.telegram.org/bots/api#getchatmenubutton" -msgstr "" - -#: ../../docstring -#: aiogram.methods.get_chat_menu_button.GetChatMenuButton.chat_id:1 of -msgid "" -"Unique identifier for the target private chat. If not specified, default " -"bot's menu button will be returned" -msgstr "" - -#: ../../api/methods/get_chat_menu_button.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/get_chat_menu_button.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/get_chat_menu_button.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/get_chat_menu_button.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/get_chat_menu_button.rst:29 -msgid ":code:`from aiogram.methods.get_chat_menu_button import GetChatMenuButton`" -msgstr "" - -#: ../../api/methods/get_chat_menu_button.rst:30 -msgid "alias: :code:`from aiogram.methods import GetChatMenuButton`" -msgstr "" - -#: ../../api/methods/get_chat_menu_button.rst:33 -msgid "With specific bot" -msgstr "" - -#~ msgid "Returns: :obj:`MenuButton`" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/get_custom_emoji_stickers.po b/docs/locale/en/LC_MESSAGES/api/methods/get_custom_emoji_stickers.po deleted file mode 100644 index 421e077e..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/get_custom_emoji_stickers.po +++ /dev/null @@ -1,75 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/get_custom_emoji_stickers.rst:3 -msgid "getCustomEmojiStickers" -msgstr "" - -#: ../../api/methods/get_custom_emoji_stickers.rst:5 -msgid "Returns: :obj:`List[Sticker]`" -msgstr "" - -#: aiogram.methods.get_custom_emoji_stickers.GetCustomEmojiStickers:1 of -msgid "" -"Use this method to get information about custom emoji stickers by their " -"identifiers. Returns an Array of :class:`aiogram.types.sticker.Sticker` " -"objects." -msgstr "" - -#: aiogram.methods.get_custom_emoji_stickers.GetCustomEmojiStickers:3 of -msgid "Source: https://core.telegram.org/bots/api#getcustomemojistickers" -msgstr "" - -#: ../../docstring -#: aiogram.methods.get_custom_emoji_stickers.GetCustomEmojiStickers.custom_emoji_ids:1 -#: of -msgid "" -"List of custom emoji identifiers. At most 200 custom emoji identifiers " -"can be specified." -msgstr "" - -#: ../../api/methods/get_custom_emoji_stickers.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/get_custom_emoji_stickers.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/get_custom_emoji_stickers.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/get_custom_emoji_stickers.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/get_custom_emoji_stickers.rst:29 -msgid "" -":code:`from aiogram.methods.get_custom_emoji_stickers import " -"GetCustomEmojiStickers`" -msgstr "" - -#: ../../api/methods/get_custom_emoji_stickers.rst:30 -msgid "alias: :code:`from aiogram.methods import GetCustomEmojiStickers`" -msgstr "" - -#: ../../api/methods/get_custom_emoji_stickers.rst:33 -msgid "With specific bot" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/get_file.po b/docs/locale/en/LC_MESSAGES/api/methods/get_file.po deleted file mode 100644 index bb0d8947..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/get_file.po +++ /dev/null @@ -1,77 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/get_file.rst:3 -msgid "getFile" -msgstr "" - -#: ../../api/methods/get_file.rst:5 -msgid "Returns: :obj:`File`" -msgstr "" - -#: aiogram.methods.get_file.GetFile:1 of -msgid "" -"Use this method to get basic information about a file and prepare it for " -"downloading. For the moment, bots can download files of up to 20MB in " -"size. On success, a :class:`aiogram.types.file.File` object is returned. " -"The file can then be downloaded via the link " -":code:`https://api.telegram.org/file/bot/`, where " -":code:`` is taken from the response. It is guaranteed that the" -" link will be valid for at least 1 hour. When the link expires, a new one" -" can be requested by calling :class:`aiogram.methods.get_file.GetFile` " -"again. **Note:** This function may not preserve the original file name " -"and MIME type. You should save the file's MIME type and name (if " -"available) when the File object is received." -msgstr "" - -#: aiogram.methods.get_file.GetFile:4 of -msgid "Source: https://core.telegram.org/bots/api#getfile" -msgstr "" - -#: ../../docstring aiogram.methods.get_file.GetFile.file_id:1 of -msgid "File identifier to get information about" -msgstr "" - -#: ../../api/methods/get_file.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/get_file.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/get_file.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/get_file.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/get_file.rst:29 -msgid ":code:`from aiogram.methods.get_file import GetFile`" -msgstr "" - -#: ../../api/methods/get_file.rst:30 -msgid "alias: :code:`from aiogram.methods import GetFile`" -msgstr "" - -#: ../../api/methods/get_file.rst:33 -msgid "With specific bot" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/get_forum_topic_icon_stickers.po b/docs/locale/en/LC_MESSAGES/api/methods/get_forum_topic_icon_stickers.po deleted file mode 100644 index 7719981e..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/get_forum_topic_icon_stickers.po +++ /dev/null @@ -1,67 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/get_forum_topic_icon_stickers.rst:3 -msgid "getForumTopicIconStickers" -msgstr "" - -#: ../../api/methods/get_forum_topic_icon_stickers.rst:5 -msgid "Returns: :obj:`List[Sticker]`" -msgstr "" - -#: aiogram.methods.get_forum_topic_icon_stickers.GetForumTopicIconStickers:1 of -msgid "" -"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." -msgstr "" - -#: aiogram.methods.get_forum_topic_icon_stickers.GetForumTopicIconStickers:3 of -msgid "Source: https://core.telegram.org/bots/api#getforumtopiciconstickers" -msgstr "" - -#: ../../api/methods/get_forum_topic_icon_stickers.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/get_forum_topic_icon_stickers.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/get_forum_topic_icon_stickers.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/get_forum_topic_icon_stickers.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/get_forum_topic_icon_stickers.rst:29 -msgid "" -":code:`from aiogram.methods.get_forum_topic_icon_stickers import " -"GetForumTopicIconStickers`" -msgstr "" - -#: ../../api/methods/get_forum_topic_icon_stickers.rst:30 -msgid "alias: :code:`from aiogram.methods import GetForumTopicIconStickers`" -msgstr "" - -#: ../../api/methods/get_forum_topic_icon_stickers.rst:33 -msgid "With specific bot" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/get_game_high_scores.po b/docs/locale/en/LC_MESSAGES/api/methods/get_game_high_scores.po deleted file mode 100644 index 192b0486..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/get_game_high_scores.po +++ /dev/null @@ -1,100 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/get_game_high_scores.rst:3 -msgid "getGameHighScores" -msgstr "" - -#: ../../api/methods/get_game_high_scores.rst:5 -msgid "Returns: :obj:`List[GameHighScore]`" -msgstr "" - -#: aiogram.methods.get_game_high_scores.GetGameHighScores:1 of -msgid "" -"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." -msgstr "" - -#: aiogram.methods.get_game_high_scores.GetGameHighScores:3 of -msgid "" -"This method will currently return scores for the target user, plus two of" -" their closest neighbors on each side. Will also return the top three " -"users if the user and their neighbors are not among them. Please note " -"that this behavior is subject to change." -msgstr "" - -#: aiogram.methods.get_game_high_scores.GetGameHighScores:5 of -msgid "Source: https://core.telegram.org/bots/api#getgamehighscores" -msgstr "" - -#: ../../docstring -#: aiogram.methods.get_game_high_scores.GetGameHighScores.user_id:1 of -msgid "Target user id" -msgstr "" - -#: ../../docstring -#: aiogram.methods.get_game_high_scores.GetGameHighScores.chat_id:1 of -msgid "" -"Required if *inline_message_id* is not specified. Unique identifier for " -"the target chat" -msgstr "" - -#: ../../docstring -#: aiogram.methods.get_game_high_scores.GetGameHighScores.message_id:1 of -msgid "" -"Required if *inline_message_id* is not specified. Identifier of the sent " -"message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.get_game_high_scores.GetGameHighScores.inline_message_id:1 -#: of -msgid "" -"Required if *chat_id* and *message_id* are not specified. Identifier of " -"the inline message" -msgstr "" - -#: ../../api/methods/get_game_high_scores.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/get_game_high_scores.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/get_game_high_scores.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/get_game_high_scores.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/get_game_high_scores.rst:29 -msgid ":code:`from aiogram.methods.get_game_high_scores import GetGameHighScores`" -msgstr "" - -#: ../../api/methods/get_game_high_scores.rst:30 -msgid "alias: :code:`from aiogram.methods import GetGameHighScores`" -msgstr "" - -#: ../../api/methods/get_game_high_scores.rst:33 -msgid "With specific bot" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/get_me.po b/docs/locale/en/LC_MESSAGES/api/methods/get_me.po deleted file mode 100644 index 5bcb644a..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/get_me.po +++ /dev/null @@ -1,65 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/get_me.rst:3 -msgid "getMe" -msgstr "" - -#: ../../api/methods/get_me.rst:5 -msgid "Returns: :obj:`User`" -msgstr "" - -#: aiogram.methods.get_me.GetMe:1 of -msgid "" -"A simple method for testing your bot's authentication token. Requires no " -"parameters. Returns basic information about the bot in form of a " -":class:`aiogram.types.user.User` object." -msgstr "" - -#: aiogram.methods.get_me.GetMe:3 of -msgid "Source: https://core.telegram.org/bots/api#getme" -msgstr "" - -#: ../../api/methods/get_me.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/get_me.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/get_me.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/get_me.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/get_me.rst:29 -msgid ":code:`from aiogram.methods.get_me import GetMe`" -msgstr "" - -#: ../../api/methods/get_me.rst:30 -msgid "alias: :code:`from aiogram.methods import GetMe`" -msgstr "" - -#: ../../api/methods/get_me.rst:33 -msgid "With specific bot" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/get_my_commands.po b/docs/locale/en/LC_MESSAGES/api/methods/get_my_commands.po deleted file mode 100644 index 1f59318d..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/get_my_commands.po +++ /dev/null @@ -1,77 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/get_my_commands.rst:3 -msgid "getMyCommands" -msgstr "" - -#: ../../api/methods/get_my_commands.rst:5 -msgid "Returns: :obj:`List[BotCommand]`" -msgstr "" - -#: aiogram.methods.get_my_commands.GetMyCommands:1 of -msgid "" -"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." -msgstr "" - -#: aiogram.methods.get_my_commands.GetMyCommands:3 of -msgid "Source: https://core.telegram.org/bots/api#getmycommands" -msgstr "" - -#: ../../docstring aiogram.methods.get_my_commands.GetMyCommands.scope:1 of -msgid "" -"A JSON-serialized object, describing scope of users. Defaults to " -":class:`aiogram.types.bot_command_scope_default.BotCommandScopeDefault`." -msgstr "" - -#: ../../docstring -#: aiogram.methods.get_my_commands.GetMyCommands.language_code:1 of -msgid "A two-letter ISO 639-1 language code or an empty string" -msgstr "" - -#: ../../api/methods/get_my_commands.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/get_my_commands.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/get_my_commands.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/get_my_commands.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/get_my_commands.rst:29 -msgid ":code:`from aiogram.methods.get_my_commands import GetMyCommands`" -msgstr "" - -#: ../../api/methods/get_my_commands.rst:30 -msgid "alias: :code:`from aiogram.methods import GetMyCommands`" -msgstr "" - -#: ../../api/methods/get_my_commands.rst:33 -msgid "With specific bot" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/get_my_default_administrator_rights.po b/docs/locale/en/LC_MESSAGES/api/methods/get_my_default_administrator_rights.po deleted file mode 100644 index 58861170..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/get_my_default_administrator_rights.po +++ /dev/null @@ -1,79 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/get_my_default_administrator_rights.rst:3 -msgid "getMyDefaultAdministratorRights" -msgstr "" - -#: ../../api/methods/get_my_default_administrator_rights.rst:5 -msgid "Returns: :obj:`ChatAdministratorRights`" -msgstr "" - -#: aiogram.methods.get_my_default_administrator_rights.GetMyDefaultAdministratorRights:1 -#: of -msgid "" -"Use this method to get the current default administrator rights of the " -"bot. Returns " -":class:`aiogram.types.chat_administrator_rights.ChatAdministratorRights` " -"on success." -msgstr "" - -#: aiogram.methods.get_my_default_administrator_rights.GetMyDefaultAdministratorRights:3 -#: of -msgid "Source: https://core.telegram.org/bots/api#getmydefaultadministratorrights" -msgstr "" - -#: ../../docstring -#: aiogram.methods.get_my_default_administrator_rights.GetMyDefaultAdministratorRights.for_channels:1 -#: of -msgid "" -"Pass :code:`True` to get default administrator rights of the bot in " -"channels. Otherwise, default administrator rights of the bot for groups " -"and supergroups will be returned." -msgstr "" - -#: ../../api/methods/get_my_default_administrator_rights.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/get_my_default_administrator_rights.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/get_my_default_administrator_rights.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/get_my_default_administrator_rights.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/get_my_default_administrator_rights.rst:29 -msgid "" -":code:`from aiogram.methods.get_my_default_administrator_rights import " -"GetMyDefaultAdministratorRights`" -msgstr "" - -#: ../../api/methods/get_my_default_administrator_rights.rst:30 -msgid "alias: :code:`from aiogram.methods import GetMyDefaultAdministratorRights`" -msgstr "" - -#: ../../api/methods/get_my_default_administrator_rights.rst:33 -msgid "With specific bot" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/get_my_description.po b/docs/locale/en/LC_MESSAGES/api/methods/get_my_description.po deleted file mode 100644 index b7ae81ab..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/get_my_description.po +++ /dev/null @@ -1,70 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2023, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2023. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/methods/get_my_description.rst:3 -msgid "getMyDescription" -msgstr "" - -#: ../../api/methods/get_my_description.rst:5 -msgid "Returns: :obj:`BotDescription`" -msgstr "" - -#: aiogram.methods.get_my_description.GetMyDescription:1 of -msgid "" -"Use this method to get the current bot description for the given user " -"language. Returns :class:`aiogram.types.bot_description.BotDescription` " -"on success." -msgstr "" - -#: aiogram.methods.get_my_description.GetMyDescription:3 of -msgid "Source: https://core.telegram.org/bots/api#getmydescription" -msgstr "" - -#: ../../docstring -#: aiogram.methods.get_my_description.GetMyDescription.language_code:1 of -msgid "A two-letter ISO 639-1 language code or an empty string" -msgstr "" - -#: ../../api/methods/get_my_description.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/get_my_description.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/get_my_description.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/get_my_description.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/get_my_description.rst:29 -msgid ":code:`from aiogram.methods.get_my_description import GetMyDescription`" -msgstr "" - -#: ../../api/methods/get_my_description.rst:30 -msgid "alias: :code:`from aiogram.methods import GetMyDescription`" -msgstr "" - -#: ../../api/methods/get_my_description.rst:33 -msgid "With specific bot" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/get_my_short_description.po b/docs/locale/en/LC_MESSAGES/api/methods/get_my_short_description.po deleted file mode 100644 index 0d4e2e77..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/get_my_short_description.po +++ /dev/null @@ -1,74 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2023, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2023. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/methods/get_my_short_description.rst:3 -msgid "getMyShortDescription" -msgstr "" - -#: ../../api/methods/get_my_short_description.rst:5 -msgid "Returns: :obj:`BotShortDescription`" -msgstr "" - -#: aiogram.methods.get_my_short_description.GetMyShortDescription:1 of -msgid "" -"Use this method to get the current bot short description for the given " -"user language. Returns " -":class:`aiogram.types.bot_short_description.BotShortDescription` on " -"success." -msgstr "" - -#: aiogram.methods.get_my_short_description.GetMyShortDescription:3 of -msgid "Source: https://core.telegram.org/bots/api#getmyshortdescription" -msgstr "" - -#: ../../docstring -#: aiogram.methods.get_my_short_description.GetMyShortDescription.language_code:1 -#: of -msgid "A two-letter ISO 639-1 language code or an empty string" -msgstr "" - -#: ../../api/methods/get_my_short_description.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/get_my_short_description.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/get_my_short_description.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/get_my_short_description.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/get_my_short_description.rst:29 -msgid "" -":code:`from aiogram.methods.get_my_short_description import " -"GetMyShortDescription`" -msgstr "" - -#: ../../api/methods/get_my_short_description.rst:30 -msgid "alias: :code:`from aiogram.methods import GetMyShortDescription`" -msgstr "" - -#: ../../api/methods/get_my_short_description.rst:33 -msgid "With specific bot" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/get_sticker_set.po b/docs/locale/en/LC_MESSAGES/api/methods/get_sticker_set.po deleted file mode 100644 index 3b71c37d..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/get_sticker_set.po +++ /dev/null @@ -1,68 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/get_sticker_set.rst:3 -msgid "getStickerSet" -msgstr "" - -#: ../../api/methods/get_sticker_set.rst:5 -msgid "Returns: :obj:`StickerSet`" -msgstr "" - -#: aiogram.methods.get_sticker_set.GetStickerSet:1 of -msgid "" -"Use this method to get a sticker set. On success, a " -":class:`aiogram.types.sticker_set.StickerSet` object is returned." -msgstr "" - -#: aiogram.methods.get_sticker_set.GetStickerSet:3 of -msgid "Source: https://core.telegram.org/bots/api#getstickerset" -msgstr "" - -#: ../../docstring aiogram.methods.get_sticker_set.GetStickerSet.name:1 of -msgid "Name of the sticker set" -msgstr "" - -#: ../../api/methods/get_sticker_set.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/get_sticker_set.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/get_sticker_set.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/get_sticker_set.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/get_sticker_set.rst:29 -msgid ":code:`from aiogram.methods.get_sticker_set import GetStickerSet`" -msgstr "" - -#: ../../api/methods/get_sticker_set.rst:30 -msgid "alias: :code:`from aiogram.methods import GetStickerSet`" -msgstr "" - -#: ../../api/methods/get_sticker_set.rst:33 -msgid "With specific bot" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/get_updates.po b/docs/locale/en/LC_MESSAGES/api/methods/get_updates.po deleted file mode 100644 index e64a0df6..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/get_updates.po +++ /dev/null @@ -1,115 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/get_updates.rst:3 -msgid "getUpdates" -msgstr "" - -#: ../../api/methods/get_updates.rst:5 -msgid "Returns: :obj:`List[Update]`" -msgstr "" - -#: aiogram.methods.get_updates.GetUpdates:1 of -msgid "" -"Use this method to receive incoming updates using long polling (`wiki " -"`_). Returns " -"an Array of :class:`aiogram.types.update.Update` objects." -msgstr "" - -#: aiogram.methods.get_updates.GetUpdates:3 of -msgid "**Notes**" -msgstr "" - -#: aiogram.methods.get_updates.GetUpdates:5 of -msgid "**1.** This method will not work if an outgoing webhook is set up." -msgstr "" - -#: aiogram.methods.get_updates.GetUpdates:7 of -msgid "" -"**2.** In order to avoid getting duplicate updates, recalculate *offset* " -"after each server response." -msgstr "" - -#: aiogram.methods.get_updates.GetUpdates:9 of -msgid "Source: https://core.telegram.org/bots/api#getupdates" -msgstr "" - -#: ../../docstring aiogram.methods.get_updates.GetUpdates.offset:1 of -msgid "" -"Identifier of the first update to be returned. Must be greater by one " -"than the highest among the identifiers of previously received updates. By" -" default, updates starting with the earliest unconfirmed update are " -"returned. An update is considered confirmed as soon as " -":class:`aiogram.methods.get_updates.GetUpdates` is called with an " -"*offset* higher than its *update_id*. The negative offset can be " -"specified to retrieve updates starting from *-offset* update from the end" -" of the updates queue. All previous updates will forgotten." -msgstr "" - -#: ../../docstring aiogram.methods.get_updates.GetUpdates.limit:1 of -msgid "" -"Limits the number of updates to be retrieved. Values between 1-100 are " -"accepted. Defaults to 100." -msgstr "" - -#: ../../docstring aiogram.methods.get_updates.GetUpdates.timeout:1 of -msgid "" -"Timeout in seconds for long polling. Defaults to 0, i.e. usual short " -"polling. Should be positive, short polling should be used for testing " -"purposes only." -msgstr "" - -#: ../../docstring aiogram.methods.get_updates.GetUpdates.allowed_updates:1 of -msgid "" -"A JSON-serialized list of the update types you want your bot to receive. " -"For example, specify ['message', 'edited_channel_post', 'callback_query']" -" to only receive updates of these types. See " -":class:`aiogram.types.update.Update` for a complete list of available " -"update types. Specify an empty list to receive all update types except " -"*chat_member* (default). If not specified, the previous setting will be " -"used." -msgstr "" - -#: ../../api/methods/get_updates.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/get_updates.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/get_updates.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/get_updates.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/get_updates.rst:29 -msgid ":code:`from aiogram.methods.get_updates import GetUpdates`" -msgstr "" - -#: ../../api/methods/get_updates.rst:30 -msgid "alias: :code:`from aiogram.methods import GetUpdates`" -msgstr "" - -#: ../../api/methods/get_updates.rst:33 -msgid "With specific bot" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/get_user_profile_photos.po b/docs/locale/en/LC_MESSAGES/api/methods/get_user_profile_photos.po deleted file mode 100644 index bbbeffbc..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/get_user_profile_photos.po +++ /dev/null @@ -1,93 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/get_user_profile_photos.rst:3 -msgid "getUserProfilePhotos" -msgstr "" - -#: ../../api/methods/get_user_profile_photos.rst:5 -msgid "Returns: :obj:`UserProfilePhotos`" -msgstr "" - -#: aiogram.methods.get_user_profile_photos.GetUserProfilePhotos:1 of -msgid "" -"Use this method to get a list of profile pictures for a user. Returns a " -":class:`aiogram.types.user_profile_photos.UserProfilePhotos` object." -msgstr "" - -#: aiogram.methods.get_user_profile_photos.GetUserProfilePhotos:3 of -msgid "Source: https://core.telegram.org/bots/api#getuserprofilephotos" -msgstr "" - -#: ../../docstring -#: aiogram.methods.get_user_profile_photos.GetUserProfilePhotos.user_id:1 of -msgid "Unique identifier of the target user" -msgstr "" - -#: ../../docstring -#: aiogram.methods.get_user_profile_photos.GetUserProfilePhotos.offset:1 of -msgid "" -"Sequential number of the first photo to be returned. By default, all " -"photos are returned." -msgstr "" - -#: ../../docstring -#: aiogram.methods.get_user_profile_photos.GetUserProfilePhotos.limit:1 of -msgid "" -"Limits the number of photos to be retrieved. Values between 1-100 are " -"accepted. Defaults to 100." -msgstr "" - -#: ../../api/methods/get_user_profile_photos.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/get_user_profile_photos.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/get_user_profile_photos.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/get_user_profile_photos.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/get_user_profile_photos.rst:29 -msgid "" -":code:`from aiogram.methods.get_user_profile_photos import " -"GetUserProfilePhotos`" -msgstr "" - -#: ../../api/methods/get_user_profile_photos.rst:30 -msgid "alias: :code:`from aiogram.methods import GetUserProfilePhotos`" -msgstr "" - -#: ../../api/methods/get_user_profile_photos.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/get_user_profile_photos.rst:43 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/get_user_profile_photos.rst:45 -msgid ":meth:`aiogram.types.user.User.get_profile_photos`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/get_webhook_info.po b/docs/locale/en/LC_MESSAGES/api/methods/get_webhook_info.po deleted file mode 100644 index da85d1b4..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/get_webhook_info.po +++ /dev/null @@ -1,67 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/get_webhook_info.rst:3 -msgid "getWebhookInfo" -msgstr "" - -#: ../../api/methods/get_webhook_info.rst:5 -msgid "Returns: :obj:`WebhookInfo`" -msgstr "" - -#: aiogram.methods.get_webhook_info.GetWebhookInfo:1 of -msgid "" -"Use this method to get current webhook status. Requires no parameters. On" -" success, returns a :class:`aiogram.types.webhook_info.WebhookInfo` " -"object. If the bot is using " -":class:`aiogram.methods.get_updates.GetUpdates`, will return an object " -"with the *url* field empty." -msgstr "" - -#: aiogram.methods.get_webhook_info.GetWebhookInfo:3 of -msgid "Source: https://core.telegram.org/bots/api#getwebhookinfo" -msgstr "" - -#: ../../api/methods/get_webhook_info.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/get_webhook_info.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/get_webhook_info.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/get_webhook_info.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/get_webhook_info.rst:29 -msgid ":code:`from aiogram.methods.get_webhook_info import GetWebhookInfo`" -msgstr "" - -#: ../../api/methods/get_webhook_info.rst:30 -msgid "alias: :code:`from aiogram.methods import GetWebhookInfo`" -msgstr "" - -#: ../../api/methods/get_webhook_info.rst:33 -msgid "With specific bot" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/hide_general_forum_topic.po b/docs/locale/en/LC_MESSAGES/api/methods/hide_general_forum_topic.po deleted file mode 100644 index 500edf6d..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/hide_general_forum_topic.po +++ /dev/null @@ -1,79 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/hide_general_forum_topic.rst:3 -msgid "hideGeneralForumTopic" -msgstr "" - -#: ../../api/methods/hide_general_forum_topic.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.hide_general_forum_topic.HideGeneralForumTopic:1 of -msgid "" -"Use this method to hide 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. The topic will be " -"automatically closed if it was open. Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.hide_general_forum_topic.HideGeneralForumTopic:3 of -msgid "Source: https://core.telegram.org/bots/api#hidegeneralforumtopic" -msgstr "" - -#: ../../docstring -#: aiogram.methods.hide_general_forum_topic.HideGeneralForumTopic.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup (in the format :code:`@supergroupusername`)" -msgstr "" - -#: ../../api/methods/hide_general_forum_topic.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/hide_general_forum_topic.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/hide_general_forum_topic.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/hide_general_forum_topic.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/hide_general_forum_topic.rst:29 -msgid "" -":code:`from aiogram.methods.hide_general_forum_topic import " -"HideGeneralForumTopic`" -msgstr "" - -#: ../../api/methods/hide_general_forum_topic.rst:30 -msgid "alias: :code:`from aiogram.methods import HideGeneralForumTopic`" -msgstr "" - -#: ../../api/methods/hide_general_forum_topic.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/hide_general_forum_topic.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/index.po b/docs/locale/en/LC_MESSAGES/api/methods/index.po deleted file mode 100644 index eb6e82bb..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/index.po +++ /dev/null @@ -1,58 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/index.rst:3 -msgid "Methods" -msgstr "" - -#: ../../api/methods/index.rst:5 -msgid "Here is list of all available API methods:" -msgstr "" - -#: ../../api/methods/index.rst:10 -msgid "Getting updates" -msgstr "" - -#: ../../api/methods/index.rst:22 -msgid "Available methods" -msgstr "" - -#: ../../api/methods/index.rst:91 -msgid "Updating messages" -msgstr "" - -#: ../../api/methods/index.rst:104 -msgid "Stickers" -msgstr "" - -#: ../../api/methods/index.rst:120 -msgid "Inline mode" -msgstr "" - -#: ../../api/methods/index.rst:129 -msgid "Payments" -msgstr "" - -#: ../../api/methods/index.rst:140 -msgid "Telegram Passport" -msgstr "" - -#: ../../api/methods/index.rst:148 -msgid "Games" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/kick_chat_member.po b/docs/locale/en/LC_MESSAGES/api/methods/kick_chat_member.po deleted file mode 100644 index d61507e4..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/kick_chat_member.po +++ /dev/null @@ -1,108 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/kick_chat_member.rst:3 -msgid "kickChatMember" -msgstr "" - -#: ../../api/methods/kick_chat_member.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: ../../api/methods/kick_chat_member.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/kick_chat_member.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/kick_chat_member.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/kick_chat_member.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/kick_chat_member.rst:29 -msgid ":code:`from aiogram.methods.kick_chat_member import KickChatMember`" -msgstr "" - -#: ../../api/methods/kick_chat_member.rst:30 -msgid "alias: :code:`from aiogram.methods import KickChatMember`" -msgstr "" - -#: ../../api/methods/kick_chat_member.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/kick_chat_member.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#~ msgid "" -#~ "Use this method to ban a user " -#~ "in a group, a supergroup or a " -#~ "channel. In the case of supergroups " -#~ "and channels, the user will not be" -#~ " able to return to the chat on" -#~ " their own using invite links, etc.," -#~ " unless `unbanned " -#~ "`_ first." -#~ " The bot must be an administrator " -#~ "in the chat for this to work " -#~ "and must have the appropriate " -#~ "administrator rights. Returns :code:`True` on" -#~ " success." -#~ msgstr "" - -#~ msgid "Source: https://core.telegram.org/bots/api#banchatmember" -#~ msgstr "" - -#~ msgid "" -#~ "Unique identifier for the target group" -#~ " or username of the target supergroup" -#~ " or channel (in the format " -#~ ":code:`@channelusername`)" -#~ msgstr "" - -#~ msgid "Unique identifier of the target user" -#~ msgstr "" - -#~ msgid "" -#~ "Date when the user will be " -#~ "unbanned, unix time. If user is " -#~ "banned for more than 366 days or" -#~ " less than 30 seconds from the " -#~ "current time they are considered to " -#~ "be banned forever. Applied for " -#~ "supergroups and channels only." -#~ msgstr "" - -#~ msgid "" -#~ "Pass :code:`True` to delete all messages" -#~ " from the chat for the user " -#~ "that is being removed. If :code:`False`," -#~ " the user will be able to see" -#~ " messages in the group that were " -#~ "sent before the user was removed. " -#~ "Always :code:`True` for supergroups and " -#~ "channels." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/leave_chat.po b/docs/locale/en/LC_MESSAGES/api/methods/leave_chat.po deleted file mode 100644 index bef135f1..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/leave_chat.po +++ /dev/null @@ -1,82 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/leave_chat.rst:3 -msgid "leaveChat" -msgstr "" - -#: ../../api/methods/leave_chat.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.leave_chat.LeaveChat:1 of -msgid "" -"Use this method for your bot to leave a group, supergroup or channel. " -"Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.leave_chat.LeaveChat:3 of -msgid "Source: https://core.telegram.org/bots/api#leavechat" -msgstr "" - -#: ../../docstring aiogram.methods.leave_chat.LeaveChat.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup or channel (in the format :code:`@channelusername`)" -msgstr "" - -#: ../../api/methods/leave_chat.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/leave_chat.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/leave_chat.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/leave_chat.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/leave_chat.rst:29 -msgid ":code:`from aiogram.methods.leave_chat import LeaveChat`" -msgstr "" - -#: ../../api/methods/leave_chat.rst:30 -msgid "alias: :code:`from aiogram.methods import LeaveChat`" -msgstr "" - -#: ../../api/methods/leave_chat.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/leave_chat.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/leave_chat.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/leave_chat.rst:50 -msgid ":meth:`aiogram.types.chat.Chat.leave`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/log_out.po b/docs/locale/en/LC_MESSAGES/api/methods/log_out.po deleted file mode 100644 index 49f02be5..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/log_out.po +++ /dev/null @@ -1,72 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/log_out.rst:3 -msgid "logOut" -msgstr "" - -#: ../../api/methods/log_out.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.log_out.LogOut:1 of -msgid "" -"Use this method to log out from the cloud Bot API server before launching" -" the bot locally. You **must** log out the bot before running it locally," -" otherwise there is no guarantee that the bot will receive updates. After" -" a successful call, you can immediately log in on a local server, but " -"will not be able to log in back to the cloud Bot API server for 10 " -"minutes. Returns :code:`True` on success. Requires no parameters." -msgstr "" - -#: aiogram.methods.log_out.LogOut:3 of -msgid "Source: https://core.telegram.org/bots/api#logout" -msgstr "" - -#: ../../api/methods/log_out.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/log_out.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/log_out.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/log_out.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/log_out.rst:29 -msgid ":code:`from aiogram.methods.log_out import LogOut`" -msgstr "" - -#: ../../api/methods/log_out.rst:30 -msgid "alias: :code:`from aiogram.methods import LogOut`" -msgstr "" - -#: ../../api/methods/log_out.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/log_out.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/pin_chat_message.po b/docs/locale/en/LC_MESSAGES/api/methods/pin_chat_message.po deleted file mode 100644 index 9a1e84e4..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/pin_chat_message.po +++ /dev/null @@ -1,105 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/pin_chat_message.rst:3 -msgid "pinChatMessage" -msgstr "" - -#: ../../api/methods/pin_chat_message.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.pin_chat_message.PinChatMessage:1 of -msgid "" -"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." -msgstr "" - -#: aiogram.methods.pin_chat_message.PinChatMessage:3 of -msgid "Source: https://core.telegram.org/bots/api#pinchatmessage" -msgstr "" - -#: ../../docstring aiogram.methods.pin_chat_message.PinChatMessage.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.pin_chat_message.PinChatMessage.message_id:1 -#: of -msgid "Identifier of a message to pin" -msgstr "" - -#: ../../docstring -#: aiogram.methods.pin_chat_message.PinChatMessage.disable_notification:1 of -msgid "" -"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." -msgstr "" - -#: ../../api/methods/pin_chat_message.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/pin_chat_message.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/pin_chat_message.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/pin_chat_message.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/pin_chat_message.rst:29 -msgid ":code:`from aiogram.methods.pin_chat_message import PinChatMessage`" -msgstr "" - -#: ../../api/methods/pin_chat_message.rst:30 -msgid "alias: :code:`from aiogram.methods import PinChatMessage`" -msgstr "" - -#: ../../api/methods/pin_chat_message.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/pin_chat_message.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/pin_chat_message.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/pin_chat_message.rst:50 -msgid ":meth:`aiogram.types.message.Message.pin`" -msgstr "" - -#: ../../api/methods/pin_chat_message.rst:51 -msgid ":meth:`aiogram.types.chat.Chat.pin_message`" -msgstr "" - -#~ msgid "As message method" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/promote_chat_member.po b/docs/locale/en/LC_MESSAGES/api/methods/promote_chat_member.po deleted file mode 100644 index 04ff8a9f..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/promote_chat_member.po +++ /dev/null @@ -1,182 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/methods/promote_chat_member.rst:3 -msgid "promoteChatMember" -msgstr "" - -#: ../../api/methods/promote_chat_member.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.promote_chat_member.PromoteChatMember:1 of -msgid "" -"Use this method to promote or demote a user in a supergroup or a channel." -" The bot must be an administrator in the chat for this to work and must " -"have the appropriate administrator rights. Pass :code:`False` for all " -"boolean parameters to demote a user. Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.promote_chat_member.PromoteChatMember:3 of -msgid "Source: https://core.telegram.org/bots/api#promotechatmember" -msgstr "" - -#: ../../docstring -#: aiogram.methods.promote_chat_member.PromoteChatMember.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.promote_chat_member.PromoteChatMember.user_id:1 of -msgid "Unique identifier of the target user" -msgstr "" - -#: ../../docstring -#: aiogram.methods.promote_chat_member.PromoteChatMember.is_anonymous:1 of -msgid "Pass :code:`True` if the administrator's presence in the chat is hidden" -msgstr "" - -#: ../../docstring -#: aiogram.methods.promote_chat_member.PromoteChatMember.can_manage_chat:1 of -msgid "" -"Pass :code:`True` if the administrator can access the chat event log, " -"chat statistics, message statistics in channels, see channel members, see" -" anonymous administrators in supergroups and ignore slow mode. Implied by" -" any other administrator privilege" -msgstr "" - -#: ../../docstring -#: aiogram.methods.promote_chat_member.PromoteChatMember.can_post_messages:1 of -msgid "" -"Pass :code:`True` if the administrator can create channel posts, channels" -" only" -msgstr "" - -#: ../../docstring -#: aiogram.methods.promote_chat_member.PromoteChatMember.can_edit_messages:1 of -msgid "" -"Pass :code:`True` if the administrator can edit messages of other users " -"and can pin messages, channels only" -msgstr "" - -#: ../../docstring -#: aiogram.methods.promote_chat_member.PromoteChatMember.can_delete_messages:1 -#: of -msgid "Pass :code:`True` if the administrator can delete messages of other users" -msgstr "" - -#: ../../docstring -#: aiogram.methods.promote_chat_member.PromoteChatMember.can_manage_video_chats:1 -#: of -msgid "Pass :code:`True` if the administrator can manage video chats" -msgstr "" - -#: ../../docstring -#: aiogram.methods.promote_chat_member.PromoteChatMember.can_restrict_members:1 -#: of -msgid "" -"Pass :code:`True` if the administrator can restrict, ban or unban chat " -"members" -msgstr "" - -#: ../../docstring -#: aiogram.methods.promote_chat_member.PromoteChatMember.can_promote_members:1 -#: of -msgid "" -"Pass :code:`True` if the administrator can add new administrators with a " -"subset of their own privileges or demote administrators that they have " -"promoted, directly or indirectly (promoted by administrators that were " -"appointed by him)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.promote_chat_member.PromoteChatMember.can_change_info:1 of -msgid "" -"Pass :code:`True` if the administrator can change chat title, photo and " -"other settings" -msgstr "" - -#: ../../docstring -#: aiogram.methods.promote_chat_member.PromoteChatMember.can_invite_users:1 of -msgid "Pass :code:`True` if the administrator can invite new users to the chat" -msgstr "" - -#: ../../docstring -#: aiogram.methods.promote_chat_member.PromoteChatMember.can_pin_messages:1 of -msgid "Pass :code:`True` if the administrator can pin messages, supergroups only" -msgstr "" - -#: ../../docstring -#: aiogram.methods.promote_chat_member.PromoteChatMember.can_manage_topics:1 of -msgid "" -"Pass :code:`True` if the user is allowed to create, rename, close, and " -"reopen forum topics, supergroups only" -msgstr "" - -#: ../../api/methods/promote_chat_member.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/promote_chat_member.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/promote_chat_member.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/promote_chat_member.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/promote_chat_member.rst:29 -msgid ":code:`from aiogram.methods.promote_chat_member import PromoteChatMember`" -msgstr "" - -#: ../../api/methods/promote_chat_member.rst:30 -msgid "alias: :code:`from aiogram.methods import PromoteChatMember`" -msgstr "" - -#: ../../api/methods/promote_chat_member.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/promote_chat_member.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/promote_chat_member.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/promote_chat_member.rst:50 -msgid ":meth:`aiogram.types.chat.Chat.promote`" -msgstr "" - -#~ msgid "" -#~ "Pass :code:`True` if the administrator " -#~ "can add new administrators with a " -#~ "subset of their own privileges or " -#~ "demote administrators that he has " -#~ "promoted, directly or indirectly (promoted " -#~ "by administrators that were appointed by" -#~ " him)" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/reopen_forum_topic.po b/docs/locale/en/LC_MESSAGES/api/methods/reopen_forum_topic.po deleted file mode 100644 index 09b013b4..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/reopen_forum_topic.po +++ /dev/null @@ -1,82 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/reopen_forum_topic.rst:3 -msgid "reopenForumTopic" -msgstr "" - -#: ../../api/methods/reopen_forum_topic.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.reopen_forum_topic.ReopenForumTopic:1 of -msgid "" -"Use this method to reopen a closed 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." -msgstr "" - -#: aiogram.methods.reopen_forum_topic.ReopenForumTopic:3 of -msgid "Source: https://core.telegram.org/bots/api#reopenforumtopic" -msgstr "" - -#: ../../docstring -#: aiogram.methods.reopen_forum_topic.ReopenForumTopic.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup (in the format :code:`@supergroupusername`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.reopen_forum_topic.ReopenForumTopic.message_thread_id:1 of -msgid "Unique identifier for the target message thread of the forum topic" -msgstr "" - -#: ../../api/methods/reopen_forum_topic.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/reopen_forum_topic.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/reopen_forum_topic.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/reopen_forum_topic.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/reopen_forum_topic.rst:29 -msgid ":code:`from aiogram.methods.reopen_forum_topic import ReopenForumTopic`" -msgstr "" - -#: ../../api/methods/reopen_forum_topic.rst:30 -msgid "alias: :code:`from aiogram.methods import ReopenForumTopic`" -msgstr "" - -#: ../../api/methods/reopen_forum_topic.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/reopen_forum_topic.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/reopen_general_forum_topic.po b/docs/locale/en/LC_MESSAGES/api/methods/reopen_general_forum_topic.po deleted file mode 100644 index cd6c41db..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/reopen_general_forum_topic.po +++ /dev/null @@ -1,81 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/reopen_general_forum_topic.rst:3 -msgid "reopenGeneralForumTopic" -msgstr "" - -#: ../../api/methods/reopen_general_forum_topic.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.reopen_general_forum_topic.ReopenGeneralForumTopic:1 of -msgid "" -"Use this method to reopen a closed '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. The topic will be" -" automatically unhidden if it was hidden. Returns :code:`True` on " -"success." -msgstr "" - -#: aiogram.methods.reopen_general_forum_topic.ReopenGeneralForumTopic:3 of -msgid "Source: https://core.telegram.org/bots/api#reopengeneralforumtopic" -msgstr "" - -#: ../../docstring -#: aiogram.methods.reopen_general_forum_topic.ReopenGeneralForumTopic.chat_id:1 -#: of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup (in the format :code:`@supergroupusername`)" -msgstr "" - -#: ../../api/methods/reopen_general_forum_topic.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/reopen_general_forum_topic.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/reopen_general_forum_topic.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/reopen_general_forum_topic.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/reopen_general_forum_topic.rst:29 -msgid "" -":code:`from aiogram.methods.reopen_general_forum_topic import " -"ReopenGeneralForumTopic`" -msgstr "" - -#: ../../api/methods/reopen_general_forum_topic.rst:30 -msgid "alias: :code:`from aiogram.methods import ReopenGeneralForumTopic`" -msgstr "" - -#: ../../api/methods/reopen_general_forum_topic.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/reopen_general_forum_topic.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/restrict_chat_member.po b/docs/locale/en/LC_MESSAGES/api/methods/restrict_chat_member.po deleted file mode 100644 index 5bc53fcb..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/restrict_chat_member.po +++ /dev/null @@ -1,118 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/methods/restrict_chat_member.rst:3 -msgid "restrictChatMember" -msgstr "" - -#: ../../api/methods/restrict_chat_member.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.restrict_chat_member.RestrictChatMember:1 of -msgid "" -"Use this method to restrict a user in a supergroup. The bot must be an " -"administrator in the supergroup for this to work and must have the " -"appropriate administrator rights. Pass :code:`True` for all permissions " -"to lift restrictions from a user. Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.restrict_chat_member.RestrictChatMember:3 of -msgid "Source: https://core.telegram.org/bots/api#restrictchatmember" -msgstr "" - -#: ../../docstring -#: aiogram.methods.restrict_chat_member.RestrictChatMember.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup (in the format :code:`@supergroupusername`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.restrict_chat_member.RestrictChatMember.user_id:1 of -msgid "Unique identifier of the target user" -msgstr "" - -#: ../../docstring -#: aiogram.methods.restrict_chat_member.RestrictChatMember.permissions:1 of -msgid "A JSON-serialized object for new user permissions" -msgstr "" - -#: ../../docstring -#: aiogram.methods.restrict_chat_member.RestrictChatMember.use_independent_chat_permissions:1 -#: of -msgid "" -"Pass :code:`True` if chat permissions are set independently. Otherwise, " -"the *can_send_other_messages* and *can_add_web_page_previews* permissions" -" will imply the *can_send_messages*, *can_send_audios*, " -"*can_send_documents*, *can_send_photos*, *can_send_videos*, " -"*can_send_video_notes*, and *can_send_voice_notes* permissions; the " -"*can_send_polls* permission will imply the *can_send_messages* " -"permission." -msgstr "" - -#: ../../docstring -#: aiogram.methods.restrict_chat_member.RestrictChatMember.until_date:1 of -msgid "" -"Date when restrictions will be lifted for the user, unix time. If user is" -" restricted for more than 366 days or less than 30 seconds from the " -"current time, they are considered to be restricted forever" -msgstr "" - -#: ../../api/methods/restrict_chat_member.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/restrict_chat_member.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/restrict_chat_member.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/restrict_chat_member.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/restrict_chat_member.rst:29 -msgid "" -":code:`from aiogram.methods.restrict_chat_member import " -"RestrictChatMember`" -msgstr "" - -#: ../../api/methods/restrict_chat_member.rst:30 -msgid "alias: :code:`from aiogram.methods import RestrictChatMember`" -msgstr "" - -#: ../../api/methods/restrict_chat_member.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/restrict_chat_member.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/restrict_chat_member.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/restrict_chat_member.rst:50 -msgid ":meth:`aiogram.types.chat.Chat.restrict`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/revoke_chat_invite_link.po b/docs/locale/en/LC_MESSAGES/api/methods/revoke_chat_invite_link.po deleted file mode 100644 index b7fee507..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/revoke_chat_invite_link.po +++ /dev/null @@ -1,94 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/revoke_chat_invite_link.rst:3 -msgid "revokeChatInviteLink" -msgstr "" - -#: ../../api/methods/revoke_chat_invite_link.rst:5 -msgid "Returns: :obj:`ChatInviteLink`" -msgstr "" - -#: aiogram.methods.revoke_chat_invite_link.RevokeChatInviteLink:1 of -msgid "" -"Use this method to revoke an invite link created by the bot. If the " -"primary link is revoked, a new link is automatically generated. The bot " -"must be an administrator in the chat for this to work and must have the " -"appropriate administrator rights. Returns the revoked invite link as " -":class:`aiogram.types.chat_invite_link.ChatInviteLink` object." -msgstr "" - -#: aiogram.methods.revoke_chat_invite_link.RevokeChatInviteLink:3 of -msgid "Source: https://core.telegram.org/bots/api#revokechatinvitelink" -msgstr "" - -#: ../../docstring -#: aiogram.methods.revoke_chat_invite_link.RevokeChatInviteLink.chat_id:1 of -msgid "" -"Unique identifier of the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.revoke_chat_invite_link.RevokeChatInviteLink.invite_link:1 -#: of -msgid "The invite link to revoke" -msgstr "" - -#: ../../api/methods/revoke_chat_invite_link.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/revoke_chat_invite_link.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/revoke_chat_invite_link.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/revoke_chat_invite_link.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/revoke_chat_invite_link.rst:29 -msgid "" -":code:`from aiogram.methods.revoke_chat_invite_link import " -"RevokeChatInviteLink`" -msgstr "" - -#: ../../api/methods/revoke_chat_invite_link.rst:30 -msgid "alias: :code:`from aiogram.methods import RevokeChatInviteLink`" -msgstr "" - -#: ../../api/methods/revoke_chat_invite_link.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/revoke_chat_invite_link.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/revoke_chat_invite_link.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/revoke_chat_invite_link.rst:50 -msgid ":meth:`aiogram.types.chat.Chat.revoke_invite_link`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/send_animation.po b/docs/locale/en/LC_MESSAGES/api/methods/send_animation.po deleted file mode 100644 index 57619de4..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/send_animation.po +++ /dev/null @@ -1,202 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/send_animation.rst:3 -msgid "sendAnimation" -msgstr "" - -#: ../../api/methods/send_animation.rst:5 -msgid "Returns: :obj:`Message`" -msgstr "" - -#: aiogram.methods.send_animation.SendAnimation:1 of -msgid "" -"Use this method to send animation files (GIF or H.264/MPEG-4 AVC video " -"without sound). On success, the sent " -":class:`aiogram.types.message.Message` is returned. Bots can currently " -"send animation files of up to 50 MB in size, this limit may be changed in" -" the future." -msgstr "" - -#: aiogram.methods.send_animation.SendAnimation:3 of -msgid "Source: https://core.telegram.org/bots/api#sendanimation" -msgstr "" - -#: ../../docstring aiogram.methods.send_animation.SendAnimation.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.send_animation.SendAnimation.animation:1 of -msgid "" -"Animation to send. Pass a file_id as String to send an animation that " -"exists on the Telegram servers (recommended), pass an HTTP URL as a " -"String for Telegram to get an animation from the Internet, or upload a " -"new animation using multipart/form-data. :ref:`More information on " -"Sending Files » `" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_animation.SendAnimation.message_thread_id:1 of -msgid "" -"Unique identifier for the target message thread (topic) of the forum; for" -" forum supergroups only" -msgstr "" - -#: ../../docstring aiogram.methods.send_animation.SendAnimation.duration:1 of -msgid "Duration of sent animation in seconds" -msgstr "" - -#: ../../docstring aiogram.methods.send_animation.SendAnimation.width:1 of -msgid "Animation width" -msgstr "" - -#: ../../docstring aiogram.methods.send_animation.SendAnimation.height:1 of -msgid "Animation height" -msgstr "" - -#: ../../docstring aiogram.methods.send_animation.SendAnimation.thumb:1 of -msgid "" -"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 » `" -msgstr "" - -#: ../../docstring aiogram.methods.send_animation.SendAnimation.caption:1 of -msgid "" -"Animation caption (may also be used when resending animation by " -"*file_id*), 0-1024 characters after entities parsing" -msgstr "" - -#: ../../docstring aiogram.methods.send_animation.SendAnimation.parse_mode:1 of -msgid "" -"Mode for parsing entities in the animation caption. See `formatting " -"options `_ for " -"more details." -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_animation.SendAnimation.caption_entities:1 of -msgid "" -"A JSON-serialized list of special entities that appear in the caption, " -"which can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring aiogram.methods.send_animation.SendAnimation.has_spoiler:1 -#: of -msgid "" -"Pass :code:`True` if the animation needs to be covered with a spoiler " -"animation" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_animation.SendAnimation.disable_notification:1 of -msgid "" -"Sends the message `silently `_. Users will receive a notification with no sound." -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_animation.SendAnimation.protect_content:1 of -msgid "Protects the contents of the sent message from forwarding and saving" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_animation.SendAnimation.reply_to_message_id:1 of -msgid "If the message is a reply, ID of the original message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_animation.SendAnimation.allow_sending_without_reply:1 -#: of -msgid "" -"Pass :code:`True` if the message should be sent even if the specified " -"replied-to message is not found" -msgstr "" - -#: ../../docstring aiogram.methods.send_animation.SendAnimation.reply_markup:1 -#: of -msgid "" -"Additional interface options. A JSON-serialized object for an `inline " -"keyboard `_, " -"`custom reply keyboard " -"`_, instructions to " -"remove reply keyboard or to force a reply from the user." -msgstr "" - -#: ../../api/methods/send_animation.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/send_animation.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/send_animation.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/send_animation.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/send_animation.rst:29 -msgid ":code:`from aiogram.methods.send_animation import SendAnimation`" -msgstr "" - -#: ../../api/methods/send_animation.rst:30 -msgid "alias: :code:`from aiogram.methods import SendAnimation`" -msgstr "" - -#: ../../api/methods/send_animation.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/send_animation.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/send_animation.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/send_animation.rst:50 -msgid ":meth:`aiogram.types.message.Message.answer_animation`" -msgstr "" - -#: ../../api/methods/send_animation.rst:51 -msgid ":meth:`aiogram.types.message.Message.reply_animation`" -msgstr "" - -#~ msgid "" -#~ "Additional interface options. A JSON-" -#~ "serialized object for an `inline " -#~ "keyboard `_, " -#~ "`custom reply keyboard " -#~ "`_, instructions " -#~ "to remove reply keyboard or to " -#~ "force a reply from the user." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/send_audio.po b/docs/locale/en/LC_MESSAGES/api/methods/send_audio.po deleted file mode 100644 index 46d06181..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/send_audio.po +++ /dev/null @@ -1,189 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/send_audio.rst:3 -msgid "sendAudio" -msgstr "" - -#: ../../api/methods/send_audio.rst:5 -msgid "Returns: :obj:`Message`" -msgstr "" - -#: aiogram.methods.send_audio.SendAudio:1 of -msgid "" -"Use this method to send audio files, if you want Telegram clients to " -"display them in the music player. Your audio must be in the .MP3 or .M4A " -"format. On success, the sent :class:`aiogram.types.message.Message` is " -"returned. Bots can currently send audio files of up to 50 MB in size, " -"this limit may be changed in the future. For sending voice messages, use " -"the :class:`aiogram.methods.send_voice.SendVoice` method instead." -msgstr "" - -#: aiogram.methods.send_audio.SendAudio:4 of -msgid "Source: https://core.telegram.org/bots/api#sendaudio" -msgstr "" - -#: ../../docstring aiogram.methods.send_audio.SendAudio.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.send_audio.SendAudio.audio:1 of -msgid "" -"Audio file to send. Pass a file_id as String to send an audio file that " -"exists on the Telegram servers (recommended), pass an HTTP URL as a " -"String for Telegram to get an audio file from the Internet, or upload a " -"new one using multipart/form-data. :ref:`More information on Sending " -"Files » `" -msgstr "" - -#: ../../docstring aiogram.methods.send_audio.SendAudio.message_thread_id:1 of -msgid "" -"Unique identifier for the target message thread (topic) of the forum; for" -" forum supergroups only" -msgstr "" - -#: ../../docstring aiogram.methods.send_audio.SendAudio.caption:1 of -msgid "Audio caption, 0-1024 characters after entities parsing" -msgstr "" - -#: ../../docstring aiogram.methods.send_audio.SendAudio.parse_mode:1 of -msgid "" -"Mode for parsing entities in the audio caption. See `formatting options " -"`_ for more " -"details." -msgstr "" - -#: ../../docstring aiogram.methods.send_audio.SendAudio.caption_entities:1 of -msgid "" -"A JSON-serialized list of special entities that appear in the caption, " -"which can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring aiogram.methods.send_audio.SendAudio.duration:1 of -msgid "Duration of the audio in seconds" -msgstr "" - -#: ../../docstring aiogram.methods.send_audio.SendAudio.performer:1 of -msgid "Performer" -msgstr "" - -#: ../../docstring aiogram.methods.send_audio.SendAudio.title:1 of -msgid "Track name" -msgstr "" - -#: ../../docstring aiogram.methods.send_audio.SendAudio.thumb:1 of -msgid "" -"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 » `" -msgstr "" - -#: ../../docstring aiogram.methods.send_audio.SendAudio.disable_notification:1 -#: of -msgid "" -"Sends the message `silently `_. Users will receive a notification with no sound." -msgstr "" - -#: ../../docstring aiogram.methods.send_audio.SendAudio.protect_content:1 of -msgid "Protects the contents of the sent message from forwarding and saving" -msgstr "" - -#: ../../docstring aiogram.methods.send_audio.SendAudio.reply_to_message_id:1 -#: of -msgid "If the message is a reply, ID of the original message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_audio.SendAudio.allow_sending_without_reply:1 of -msgid "" -"Pass :code:`True` if the message should be sent even if the specified " -"replied-to message is not found" -msgstr "" - -#: ../../docstring aiogram.methods.send_audio.SendAudio.reply_markup:1 of -msgid "" -"Additional interface options. A JSON-serialized object for an `inline " -"keyboard `_, " -"`custom reply keyboard " -"`_, instructions to " -"remove reply keyboard or to force a reply from the user." -msgstr "" - -#: ../../api/methods/send_audio.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/send_audio.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/send_audio.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/send_audio.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/send_audio.rst:29 -msgid ":code:`from aiogram.methods.send_audio import SendAudio`" -msgstr "" - -#: ../../api/methods/send_audio.rst:30 -msgid "alias: :code:`from aiogram.methods import SendAudio`" -msgstr "" - -#: ../../api/methods/send_audio.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/send_audio.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/send_audio.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/send_audio.rst:50 -msgid ":meth:`aiogram.types.message.Message.answer_audio`" -msgstr "" - -#: ../../api/methods/send_audio.rst:51 -msgid ":meth:`aiogram.types.message.Message.reply_audio`" -msgstr "" - -#~ msgid "" -#~ "Additional interface options. A JSON-" -#~ "serialized object for an `inline " -#~ "keyboard `_, " -#~ "`custom reply keyboard " -#~ "`_, instructions " -#~ "to remove reply keyboard or to " -#~ "force a reply from the user." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/send_chat_action.po b/docs/locale/en/LC_MESSAGES/api/methods/send_chat_action.po deleted file mode 100644 index b379f03c..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/send_chat_action.po +++ /dev/null @@ -1,122 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/send_chat_action.rst:3 -msgid "sendChatAction" -msgstr "" - -#: ../../api/methods/send_chat_action.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.send_chat_action.SendChatAction:1 of -msgid "" -"Use this method when you need to tell the user that something is " -"happening on the bot's side. The status is set for 5 seconds or less " -"(when a message arrives from your bot, Telegram clients clear its typing " -"status). Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.send_chat_action.SendChatAction:3 of -msgid "" -"Example: The `ImageBot `_ needs some time to " -"process a request and upload the image. Instead of sending a text message" -" along the lines of 'Retrieving image, please wait…', the bot may use " -":class:`aiogram.methods.send_chat_action.SendChatAction` with *action* = " -"*upload_photo*. The user will see a 'sending photo' status for the bot." -msgstr "" - -#: aiogram.methods.send_chat_action.SendChatAction:5 of -msgid "" -"We only recommend using this method when a response from the bot will " -"take a **noticeable** amount of time to arrive." -msgstr "" - -#: aiogram.methods.send_chat_action.SendChatAction:7 of -msgid "Source: https://core.telegram.org/bots/api#sendchataction" -msgstr "" - -#: ../../docstring aiogram.methods.send_chat_action.SendChatAction.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.send_chat_action.SendChatAction.action:1 of -msgid "" -"Type of action to broadcast. Choose one, depending on what the user is " -"about to receive: *typing* for `text messages " -"`_, *upload_photo* for " -"`photos `_, *record_video* " -"or *upload_video* for `videos " -"`_, *record_voice* or " -"*upload_voice* for `voice notes " -"`_, *upload_document* for " -"`general files `_, " -"*choose_sticker* for `stickers " -"`_, *find_location* for " -"`location data `_, " -"*record_video_note* or *upload_video_note* for `video notes " -"`_." -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_chat_action.SendChatAction.message_thread_id:1 of -msgid "Unique identifier for the target message thread; supergroups only" -msgstr "" - -#: ../../api/methods/send_chat_action.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/send_chat_action.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/send_chat_action.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/send_chat_action.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/send_chat_action.rst:29 -msgid ":code:`from aiogram.methods.send_chat_action import SendChatAction`" -msgstr "" - -#: ../../api/methods/send_chat_action.rst:30 -msgid "alias: :code:`from aiogram.methods import SendChatAction`" -msgstr "" - -#: ../../api/methods/send_chat_action.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/send_chat_action.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/send_chat_action.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/send_chat_action.rst:50 -msgid ":meth:`aiogram.types.chat.Chat.do`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/send_contact.po b/docs/locale/en/LC_MESSAGES/api/methods/send_contact.po deleted file mode 100644 index 8ada4c7b..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/send_contact.po +++ /dev/null @@ -1,155 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/send_contact.rst:3 -msgid "sendContact" -msgstr "" - -#: ../../api/methods/send_contact.rst:5 -msgid "Returns: :obj:`Message`" -msgstr "" - -#: aiogram.methods.send_contact.SendContact:1 of -msgid "" -"Use this method to send phone contacts. On success, the sent " -":class:`aiogram.types.message.Message` is returned." -msgstr "" - -#: aiogram.methods.send_contact.SendContact:3 of -msgid "Source: https://core.telegram.org/bots/api#sendcontact" -msgstr "" - -#: ../../docstring aiogram.methods.send_contact.SendContact.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.send_contact.SendContact.phone_number:1 of -msgid "Contact's phone number" -msgstr "" - -#: ../../docstring aiogram.methods.send_contact.SendContact.first_name:1 of -msgid "Contact's first name" -msgstr "" - -#: ../../docstring aiogram.methods.send_contact.SendContact.message_thread_id:1 -#: of -msgid "" -"Unique identifier for the target message thread (topic) of the forum; for" -" forum supergroups only" -msgstr "" - -#: ../../docstring aiogram.methods.send_contact.SendContact.last_name:1 of -msgid "Contact's last name" -msgstr "" - -#: ../../docstring aiogram.methods.send_contact.SendContact.vcard:1 of -msgid "" -"Additional data about the contact in the form of a `vCard " -"`_, 0-2048 bytes" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_contact.SendContact.disable_notification:1 of -msgid "" -"Sends the message `silently `_. Users will receive a notification with no sound." -msgstr "" - -#: ../../docstring aiogram.methods.send_contact.SendContact.protect_content:1 -#: of -msgid "Protects the contents of the sent message from forwarding and saving" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_contact.SendContact.reply_to_message_id:1 of -msgid "If the message is a reply, ID of the original message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_contact.SendContact.allow_sending_without_reply:1 of -msgid "" -"Pass :code:`True` if the message should be sent even if the specified " -"replied-to message is not found" -msgstr "" - -#: ../../docstring aiogram.methods.send_contact.SendContact.reply_markup:1 of -msgid "" -"Additional interface options. A JSON-serialized object for an `inline " -"keyboard `_, " -"`custom reply keyboard " -"`_, instructions to " -"remove reply keyboard or to force a reply from the user." -msgstr "" - -#: ../../api/methods/send_contact.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/send_contact.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/send_contact.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/send_contact.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/send_contact.rst:29 -msgid ":code:`from aiogram.methods.send_contact import SendContact`" -msgstr "" - -#: ../../api/methods/send_contact.rst:30 -msgid "alias: :code:`from aiogram.methods import SendContact`" -msgstr "" - -#: ../../api/methods/send_contact.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/send_contact.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/send_contact.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/send_contact.rst:50 -msgid ":meth:`aiogram.types.message.Message.answer_contact`" -msgstr "" - -#: ../../api/methods/send_contact.rst:51 -msgid ":meth:`aiogram.types.message.Message.reply_contact`" -msgstr "" - -#~ msgid "" -#~ "Additional interface options. A JSON-" -#~ "serialized object for an `inline " -#~ "keyboard `_, " -#~ "`custom reply keyboard " -#~ "`_, instructions " -#~ "to remove keyboard or to force a" -#~ " reply from the user." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/send_dice.po b/docs/locale/en/LC_MESSAGES/api/methods/send_dice.po deleted file mode 100644 index 19a52d2f..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/send_dice.po +++ /dev/null @@ -1,142 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/send_dice.rst:3 -msgid "sendDice" -msgstr "" - -#: ../../api/methods/send_dice.rst:5 -msgid "Returns: :obj:`Message`" -msgstr "" - -#: aiogram.methods.send_dice.SendDice:1 of -msgid "" -"Use this method to send an animated emoji that will display a random " -"value. On success, the sent :class:`aiogram.types.message.Message` is " -"returned." -msgstr "" - -#: aiogram.methods.send_dice.SendDice:3 of -msgid "Source: https://core.telegram.org/bots/api#senddice" -msgstr "" - -#: ../../docstring aiogram.methods.send_dice.SendDice.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.send_dice.SendDice.message_thread_id:1 of -msgid "" -"Unique identifier for the target message thread (topic) of the forum; for" -" forum supergroups only" -msgstr "" - -#: ../../docstring aiogram.methods.send_dice.SendDice.emoji:1 of -msgid "" -"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 '🎲'" -msgstr "" - -#: ../../docstring aiogram.methods.send_dice.SendDice.disable_notification:1 of -msgid "" -"Sends the message `silently `_. Users will receive a notification with no sound." -msgstr "" - -#: ../../docstring aiogram.methods.send_dice.SendDice.protect_content:1 of -msgid "Protects the contents of the sent message from forwarding" -msgstr "" - -#: ../../docstring aiogram.methods.send_dice.SendDice.reply_to_message_id:1 of -msgid "If the message is a reply, ID of the original message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_dice.SendDice.allow_sending_without_reply:1 of -msgid "" -"Pass :code:`True` if the message should be sent even if the specified " -"replied-to message is not found" -msgstr "" - -#: ../../docstring aiogram.methods.send_dice.SendDice.reply_markup:1 of -msgid "" -"Additional interface options. A JSON-serialized object for an `inline " -"keyboard `_, " -"`custom reply keyboard " -"`_, instructions to " -"remove reply keyboard or to force a reply from the user." -msgstr "" - -#: ../../api/methods/send_dice.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/send_dice.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/send_dice.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/send_dice.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/send_dice.rst:29 -msgid ":code:`from aiogram.methods.send_dice import SendDice`" -msgstr "" - -#: ../../api/methods/send_dice.rst:30 -msgid "alias: :code:`from aiogram.methods import SendDice`" -msgstr "" - -#: ../../api/methods/send_dice.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/send_dice.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/send_dice.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/send_dice.rst:50 -msgid ":meth:`aiogram.types.message.Message.answer_dice`" -msgstr "" - -#: ../../api/methods/send_dice.rst:51 -msgid ":meth:`aiogram.types.message.Message.reply_dice`" -msgstr "" - -#~ msgid "" -#~ "Additional interface options. A JSON-" -#~ "serialized object for an `inline " -#~ "keyboard `_, " -#~ "`custom reply keyboard " -#~ "`_, instructions " -#~ "to remove reply keyboard or to " -#~ "force a reply from the user." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/send_document.po b/docs/locale/en/LC_MESSAGES/api/methods/send_document.po deleted file mode 100644 index 2b2e658f..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/send_document.po +++ /dev/null @@ -1,187 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/send_document.rst:3 -msgid "sendDocument" -msgstr "" - -#: ../../api/methods/send_document.rst:5 -msgid "Returns: :obj:`Message`" -msgstr "" - -#: aiogram.methods.send_document.SendDocument:1 of -msgid "" -"Use this method to send general files. On success, the sent " -":class:`aiogram.types.message.Message` is returned. Bots can currently " -"send files of any type of up to 50 MB in size, this limit may be changed " -"in the future." -msgstr "" - -#: aiogram.methods.send_document.SendDocument:3 of -msgid "Source: https://core.telegram.org/bots/api#senddocument" -msgstr "" - -#: ../../docstring aiogram.methods.send_document.SendDocument.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.send_document.SendDocument.document:1 of -msgid "" -"File to send. Pass a file_id as String to send a file that exists on the " -"Telegram servers (recommended), 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 » `" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_document.SendDocument.message_thread_id:1 of -msgid "" -"Unique identifier for the target message thread (topic) of the forum; for" -" forum supergroups only" -msgstr "" - -#: ../../docstring aiogram.methods.send_document.SendDocument.thumb:1 of -msgid "" -"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 » `" -msgstr "" - -#: ../../docstring aiogram.methods.send_document.SendDocument.caption:1 of -msgid "" -"Document caption (may also be used when resending documents by " -"*file_id*), 0-1024 characters after entities parsing" -msgstr "" - -#: ../../docstring aiogram.methods.send_document.SendDocument.parse_mode:1 of -msgid "" -"Mode for parsing entities in the document caption. See `formatting " -"options `_ for " -"more details." -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_document.SendDocument.caption_entities:1 of -msgid "" -"A JSON-serialized list of special entities that appear in the caption, " -"which can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_document.SendDocument.disable_content_type_detection:1 -#: of -msgid "" -"Disables automatic server-side content type detection for files uploaded " -"using multipart/form-data" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_document.SendDocument.disable_notification:1 of -msgid "" -"Sends the message `silently `_. Users will receive a notification with no sound." -msgstr "" - -#: ../../docstring aiogram.methods.send_document.SendDocument.protect_content:1 -#: of -msgid "Protects the contents of the sent message from forwarding and saving" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_document.SendDocument.reply_to_message_id:1 of -msgid "If the message is a reply, ID of the original message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_document.SendDocument.allow_sending_without_reply:1 of -msgid "" -"Pass :code:`True` if the message should be sent even if the specified " -"replied-to message is not found" -msgstr "" - -#: ../../docstring aiogram.methods.send_document.SendDocument.reply_markup:1 of -msgid "" -"Additional interface options. A JSON-serialized object for an `inline " -"keyboard `_, " -"`custom reply keyboard " -"`_, instructions to " -"remove reply keyboard or to force a reply from the user." -msgstr "" - -#: ../../api/methods/send_document.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/send_document.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/send_document.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/send_document.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/send_document.rst:29 -msgid ":code:`from aiogram.methods.send_document import SendDocument`" -msgstr "" - -#: ../../api/methods/send_document.rst:30 -msgid "alias: :code:`from aiogram.methods import SendDocument`" -msgstr "" - -#: ../../api/methods/send_document.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/send_document.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/send_document.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/send_document.rst:50 -msgid ":meth:`aiogram.types.message.Message.answer_document`" -msgstr "" - -#: ../../api/methods/send_document.rst:51 -msgid ":meth:`aiogram.types.message.Message.reply_document`" -msgstr "" - -#~ msgid "" -#~ "Additional interface options. A JSON-" -#~ "serialized object for an `inline " -#~ "keyboard `_, " -#~ "`custom reply keyboard " -#~ "`_, instructions " -#~ "to remove reply keyboard or to " -#~ "force a reply from the user." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/send_game.po b/docs/locale/en/LC_MESSAGES/api/methods/send_game.po deleted file mode 100644 index a46e72a0..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/send_game.po +++ /dev/null @@ -1,135 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/send_game.rst:3 -msgid "sendGame" -msgstr "" - -#: ../../api/methods/send_game.rst:5 -msgid "Returns: :obj:`Message`" -msgstr "" - -#: aiogram.methods.send_game.SendGame:1 of -msgid "" -"Use this method to send a game. On success, the sent " -":class:`aiogram.types.message.Message` is returned." -msgstr "" - -#: aiogram.methods.send_game.SendGame:3 of -msgid "Source: https://core.telegram.org/bots/api#sendgame" -msgstr "" - -#: ../../docstring aiogram.methods.send_game.SendGame.chat_id:1 of -msgid "Unique identifier for the target chat" -msgstr "" - -#: ../../docstring aiogram.methods.send_game.SendGame.game_short_name:1 of -msgid "" -"Short name of the game, serves as the unique identifier for the game. Set" -" up your games via `@BotFather `_." -msgstr "" - -#: ../../docstring aiogram.methods.send_game.SendGame.message_thread_id:1 of -msgid "" -"Unique identifier for the target message thread (topic) of the forum; for" -" forum supergroups only" -msgstr "" - -#: ../../docstring aiogram.methods.send_game.SendGame.disable_notification:1 of -msgid "" -"Sends the message `silently `_. Users will receive a notification with no sound." -msgstr "" - -#: ../../docstring aiogram.methods.send_game.SendGame.protect_content:1 of -msgid "Protects the contents of the sent message from forwarding and saving" -msgstr "" - -#: ../../docstring aiogram.methods.send_game.SendGame.reply_to_message_id:1 of -msgid "If the message is a reply, ID of the original message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_game.SendGame.allow_sending_without_reply:1 of -msgid "" -"Pass :code:`True` if the message should be sent even if the specified " -"replied-to message is not found" -msgstr "" - -#: ../../docstring aiogram.methods.send_game.SendGame.reply_markup:1 of -msgid "" -"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." -msgstr "" - -#: ../../api/methods/send_game.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/send_game.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/send_game.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/send_game.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/send_game.rst:29 -msgid ":code:`from aiogram.methods.send_game import SendGame`" -msgstr "" - -#: ../../api/methods/send_game.rst:30 -msgid "alias: :code:`from aiogram.methods import SendGame`" -msgstr "" - -#: ../../api/methods/send_game.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/send_game.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/send_game.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/send_game.rst:50 -msgid ":meth:`aiogram.types.message.Message.answer_game`" -msgstr "" - -#: ../../api/methods/send_game.rst:51 -msgid ":meth:`aiogram.types.message.Message.reply_game`" -msgstr "" - -#~ msgid "" -#~ "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." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/send_invoice.po b/docs/locale/en/LC_MESSAGES/api/methods/send_invoice.po deleted file mode 100644 index 454d943d..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/send_invoice.po +++ /dev/null @@ -1,265 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/send_invoice.rst:3 -msgid "sendInvoice" -msgstr "" - -#: ../../api/methods/send_invoice.rst:5 -msgid "Returns: :obj:`Message`" -msgstr "" - -#: aiogram.methods.send_invoice.SendInvoice:1 of -msgid "" -"Use this method to send invoices. On success, the sent " -":class:`aiogram.types.message.Message` is returned." -msgstr "" - -#: aiogram.methods.send_invoice.SendInvoice:3 of -msgid "Source: https://core.telegram.org/bots/api#sendinvoice" -msgstr "" - -#: ../../docstring aiogram.methods.send_invoice.SendInvoice.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.send_invoice.SendInvoice.title:1 of -msgid "Product name, 1-32 characters" -msgstr "" - -#: ../../docstring aiogram.methods.send_invoice.SendInvoice.description:1 of -msgid "Product description, 1-255 characters" -msgstr "" - -#: ../../docstring aiogram.methods.send_invoice.SendInvoice.payload:1 of -msgid "" -"Bot-defined invoice payload, 1-128 bytes. This will not be displayed to " -"the user, use for your internal processes." -msgstr "" - -#: ../../docstring aiogram.methods.send_invoice.SendInvoice.provider_token:1 of -msgid "" -"Payment provider token, obtained via `@BotFather " -"`_" -msgstr "" - -#: ../../docstring aiogram.methods.send_invoice.SendInvoice.currency:1 of -msgid "" -"Three-letter ISO 4217 currency code, see `more on currencies " -"`_" -msgstr "" - -#: ../../docstring aiogram.methods.send_invoice.SendInvoice.prices:1 of -msgid "" -"Price breakdown, a JSON-serialized list of components (e.g. product " -"price, tax, discount, delivery cost, delivery tax, bonus, etc.)" -msgstr "" - -#: ../../docstring aiogram.methods.send_invoice.SendInvoice.message_thread_id:1 -#: of -msgid "" -"Unique identifier for the target message thread (topic) of the forum; for" -" forum supergroups only" -msgstr "" - -#: ../../docstring aiogram.methods.send_invoice.SendInvoice.max_tip_amount:1 of -msgid "" -"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" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_invoice.SendInvoice.suggested_tip_amounts:1 of -msgid "" -"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*." -msgstr "" - -#: ../../docstring aiogram.methods.send_invoice.SendInvoice.start_parameter:1 -#: of -msgid "" -"Unique deep-linking parameter. If left empty, **forwarded copies** of the" -" sent message will have a *Pay* button, allowing multiple users to pay " -"directly from the forwarded message, using the same invoice. If non-" -"empty, forwarded copies of the sent message will have a *URL* button with" -" a deep link to the bot (instead of a *Pay* button), with the value used " -"as the start parameter" -msgstr "" - -#: ../../docstring aiogram.methods.send_invoice.SendInvoice.provider_data:1 of -msgid "" -"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." -msgstr "" - -#: ../../docstring aiogram.methods.send_invoice.SendInvoice.photo_url:1 of -msgid "" -"URL of the product photo for the invoice. Can be a photo of the goods or " -"a marketing image for a service. People like it better when they see what" -" they are paying for." -msgstr "" - -#: ../../docstring aiogram.methods.send_invoice.SendInvoice.photo_size:1 of -msgid "Photo size in bytes" -msgstr "" - -#: ../../docstring aiogram.methods.send_invoice.SendInvoice.photo_width:1 of -msgid "Photo width" -msgstr "" - -#: ../../docstring aiogram.methods.send_invoice.SendInvoice.photo_height:1 of -msgid "Photo height" -msgstr "" - -#: ../../docstring aiogram.methods.send_invoice.SendInvoice.need_name:1 of -msgid "" -"Pass :code:`True` if you require the user's full name to complete the " -"order" -msgstr "" - -#: ../../docstring aiogram.methods.send_invoice.SendInvoice.need_phone_number:1 -#: of -msgid "" -"Pass :code:`True` if you require the user's phone number to complete the " -"order" -msgstr "" - -#: ../../docstring aiogram.methods.send_invoice.SendInvoice.need_email:1 of -msgid "" -"Pass :code:`True` if you require the user's email address to complete the" -" order" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_invoice.SendInvoice.need_shipping_address:1 of -msgid "" -"Pass :code:`True` if you require the user's shipping address to complete " -"the order" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_invoice.SendInvoice.send_phone_number_to_provider:1 of -msgid "Pass :code:`True` if the user's phone number should be sent to provider" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_invoice.SendInvoice.send_email_to_provider:1 of -msgid "Pass :code:`True` if the user's email address should be sent to provider" -msgstr "" - -#: ../../docstring aiogram.methods.send_invoice.SendInvoice.is_flexible:1 of -msgid "Pass :code:`True` if the final price depends on the shipping method" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_invoice.SendInvoice.disable_notification:1 of -msgid "" -"Sends the message `silently `_. Users will receive a notification with no sound." -msgstr "" - -#: ../../docstring aiogram.methods.send_invoice.SendInvoice.protect_content:1 -#: of -msgid "Protects the contents of the sent message from forwarding and saving" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_invoice.SendInvoice.reply_to_message_id:1 of -msgid "If the message is a reply, ID of the original message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_invoice.SendInvoice.allow_sending_without_reply:1 of -msgid "" -"Pass :code:`True` if the message should be sent even if the specified " -"replied-to message is not found" -msgstr "" - -#: ../../docstring aiogram.methods.send_invoice.SendInvoice.reply_markup:1 of -msgid "" -"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." -msgstr "" - -#: ../../api/methods/send_invoice.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/send_invoice.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/send_invoice.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/send_invoice.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/send_invoice.rst:29 -msgid ":code:`from aiogram.methods.send_invoice import SendInvoice`" -msgstr "" - -#: ../../api/methods/send_invoice.rst:30 -msgid "alias: :code:`from aiogram.methods import SendInvoice`" -msgstr "" - -#: ../../api/methods/send_invoice.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/send_invoice.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/send_invoice.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/send_invoice.rst:50 -msgid ":meth:`aiogram.types.message.Message.answer_invoice`" -msgstr "" - -#: ../../api/methods/send_invoice.rst:51 -msgid ":meth:`aiogram.types.message.Message.reply_invoice`" -msgstr "" - -#~ msgid "" -#~ "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." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/send_location.po b/docs/locale/en/LC_MESSAGES/api/methods/send_location.po deleted file mode 100644 index 8ed4a116..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/send_location.po +++ /dev/null @@ -1,171 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/send_location.rst:3 -msgid "sendLocation" -msgstr "" - -#: ../../api/methods/send_location.rst:5 -msgid "Returns: :obj:`Message`" -msgstr "" - -#: aiogram.methods.send_location.SendLocation:1 of -msgid "" -"Use this method to send point on the map. On success, the sent " -":class:`aiogram.types.message.Message` is returned." -msgstr "" - -#: aiogram.methods.send_location.SendLocation:3 of -msgid "Source: https://core.telegram.org/bots/api#sendlocation" -msgstr "" - -#: ../../docstring aiogram.methods.send_location.SendLocation.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.send_location.SendLocation.latitude:1 of -msgid "Latitude of the location" -msgstr "" - -#: ../../docstring aiogram.methods.send_location.SendLocation.longitude:1 of -msgid "Longitude of the location" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_location.SendLocation.message_thread_id:1 of -msgid "" -"Unique identifier for the target message thread (topic) of the forum; for" -" forum supergroups only" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_location.SendLocation.horizontal_accuracy:1 of -msgid "The radius of uncertainty for the location, measured in meters; 0-1500" -msgstr "" - -#: ../../docstring aiogram.methods.send_location.SendLocation.live_period:1 of -msgid "" -"Period in seconds for which the location will be updated (see `Live " -"Locations `_, should be between" -" 60 and 86400." -msgstr "" - -#: ../../docstring aiogram.methods.send_location.SendLocation.heading:1 of -msgid "" -"For live locations, a direction in which the user is moving, in degrees. " -"Must be between 1 and 360 if specified." -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_location.SendLocation.proximity_alert_radius:1 of -msgid "" -"For live locations, a maximum distance for proximity alerts about " -"approaching another chat member, in meters. Must be between 1 and 100000 " -"if specified." -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_location.SendLocation.disable_notification:1 of -msgid "" -"Sends the message `silently `_. Users will receive a notification with no sound." -msgstr "" - -#: ../../docstring aiogram.methods.send_location.SendLocation.protect_content:1 -#: of -msgid "Protects the contents of the sent message from forwarding and saving" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_location.SendLocation.reply_to_message_id:1 of -msgid "If the message is a reply, ID of the original message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_location.SendLocation.allow_sending_without_reply:1 of -msgid "" -"Pass :code:`True` if the message should be sent even if the specified " -"replied-to message is not found" -msgstr "" - -#: ../../docstring aiogram.methods.send_location.SendLocation.reply_markup:1 of -msgid "" -"Additional interface options. A JSON-serialized object for an `inline " -"keyboard `_, " -"`custom reply keyboard " -"`_, instructions to " -"remove reply keyboard or to force a reply from the user." -msgstr "" - -#: ../../api/methods/send_location.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/send_location.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/send_location.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/send_location.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/send_location.rst:29 -msgid ":code:`from aiogram.methods.send_location import SendLocation`" -msgstr "" - -#: ../../api/methods/send_location.rst:30 -msgid "alias: :code:`from aiogram.methods import SendLocation`" -msgstr "" - -#: ../../api/methods/send_location.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/send_location.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/send_location.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/send_location.rst:50 -msgid ":meth:`aiogram.types.message.Message.answer_location`" -msgstr "" - -#: ../../api/methods/send_location.rst:51 -msgid ":meth:`aiogram.types.message.Message.reply_location`" -msgstr "" - -#~ msgid "" -#~ "Additional interface options. A JSON-" -#~ "serialized object for an `inline " -#~ "keyboard `_, " -#~ "`custom reply keyboard " -#~ "`_, instructions " -#~ "to remove reply keyboard or to " -#~ "force a reply from the user." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/send_media_group.po b/docs/locale/en/LC_MESSAGES/api/methods/send_media_group.po deleted file mode 100644 index e3d5b3db..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/send_media_group.po +++ /dev/null @@ -1,127 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/send_media_group.rst:3 -msgid "sendMediaGroup" -msgstr "" - -#: ../../api/methods/send_media_group.rst:5 -msgid "Returns: :obj:`List[Message]`" -msgstr "" - -#: aiogram.methods.send_media_group.SendMediaGroup:1 of -msgid "" -"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." -msgstr "" - -#: aiogram.methods.send_media_group.SendMediaGroup:3 of -msgid "Source: https://core.telegram.org/bots/api#sendmediagroup" -msgstr "" - -#: ../../docstring aiogram.methods.send_media_group.SendMediaGroup.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.send_media_group.SendMediaGroup.media:1 of -msgid "" -"A JSON-serialized array describing messages to be sent, must include 2-10" -" items" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_media_group.SendMediaGroup.message_thread_id:1 of -msgid "" -"Unique identifier for the target message thread (topic) of the forum; for" -" forum supergroups only" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_media_group.SendMediaGroup.disable_notification:1 of -msgid "" -"Sends messages `silently `_. Users will receive a notification with no sound." -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_media_group.SendMediaGroup.protect_content:1 of -msgid "Protects the contents of the sent messages from forwarding and saving" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_media_group.SendMediaGroup.reply_to_message_id:1 of -msgid "If the messages are a reply, ID of the original message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_media_group.SendMediaGroup.allow_sending_without_reply:1 -#: of -msgid "" -"Pass :code:`True` if the message should be sent even if the specified " -"replied-to message is not found" -msgstr "" - -#: ../../api/methods/send_media_group.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/send_media_group.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/send_media_group.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/send_media_group.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/send_media_group.rst:29 -msgid ":code:`from aiogram.methods.send_media_group import SendMediaGroup`" -msgstr "" - -#: ../../api/methods/send_media_group.rst:30 -msgid "alias: :code:`from aiogram.methods import SendMediaGroup`" -msgstr "" - -#: ../../api/methods/send_media_group.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/send_media_group.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/send_media_group.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/send_media_group.rst:50 -msgid ":meth:`aiogram.types.message.Message.answer_media_group`" -msgstr "" - -#: ../../api/methods/send_media_group.rst:51 -msgid ":meth:`aiogram.types.message.Message.reply_media_group`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/send_message.po b/docs/locale/en/LC_MESSAGES/api/methods/send_message.po deleted file mode 100644 index e0a83b6d..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/send_message.po +++ /dev/null @@ -1,159 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/send_message.rst:3 -msgid "sendMessage" -msgstr "" - -#: ../../api/methods/send_message.rst:5 -msgid "Returns: :obj:`Message`" -msgstr "" - -#: aiogram.methods.send_message.SendMessage:1 of -msgid "" -"Use this method to send text messages. On success, the sent " -":class:`aiogram.types.message.Message` is returned." -msgstr "" - -#: aiogram.methods.send_message.SendMessage:3 of -msgid "Source: https://core.telegram.org/bots/api#sendmessage" -msgstr "" - -#: ../../docstring aiogram.methods.send_message.SendMessage.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.send_message.SendMessage.text:1 of -msgid "Text of the message to be sent, 1-4096 characters after entities parsing" -msgstr "" - -#: ../../docstring aiogram.methods.send_message.SendMessage.message_thread_id:1 -#: of -msgid "" -"Unique identifier for the target message thread (topic) of the forum; for" -" forum supergroups only" -msgstr "" - -#: ../../docstring aiogram.methods.send_message.SendMessage.parse_mode:1 of -msgid "" -"Mode for parsing entities in the message text. See `formatting options " -"`_ for more " -"details." -msgstr "" - -#: ../../docstring aiogram.methods.send_message.SendMessage.entities:1 of -msgid "" -"A JSON-serialized list of special entities that appear in message text, " -"which can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_message.SendMessage.disable_web_page_preview:1 of -msgid "Disables link previews for links in this message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_message.SendMessage.disable_notification:1 of -msgid "" -"Sends the message `silently `_. Users will receive a notification with no sound." -msgstr "" - -#: ../../docstring aiogram.methods.send_message.SendMessage.protect_content:1 -#: of -msgid "Protects the contents of the sent message from forwarding and saving" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_message.SendMessage.reply_to_message_id:1 of -msgid "If the message is a reply, ID of the original message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_message.SendMessage.allow_sending_without_reply:1 of -msgid "" -"Pass :code:`True` if the message should be sent even if the specified " -"replied-to message is not found" -msgstr "" - -#: ../../docstring aiogram.methods.send_message.SendMessage.reply_markup:1 of -msgid "" -"Additional interface options. A JSON-serialized object for an `inline " -"keyboard `_, " -"`custom reply keyboard " -"`_, instructions to " -"remove reply keyboard or to force a reply from the user." -msgstr "" - -#: ../../api/methods/send_message.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/send_message.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/send_message.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/send_message.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/send_message.rst:29 -msgid ":code:`from aiogram.methods.send_message import SendMessage`" -msgstr "" - -#: ../../api/methods/send_message.rst:30 -msgid "alias: :code:`from aiogram.methods import SendMessage`" -msgstr "" - -#: ../../api/methods/send_message.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/send_message.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/send_message.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/send_message.rst:50 -msgid ":meth:`aiogram.types.message.Message.answer`" -msgstr "" - -#: ../../api/methods/send_message.rst:51 -msgid ":meth:`aiogram.types.message.Message.reply`" -msgstr "" - -#~ msgid "" -#~ "Additional interface options. A JSON-" -#~ "serialized object for an `inline " -#~ "keyboard `_, " -#~ "`custom reply keyboard " -#~ "`_, instructions " -#~ "to remove reply keyboard or to " -#~ "force a reply from the user." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/send_photo.po b/docs/locale/en/LC_MESSAGES/api/methods/send_photo.po deleted file mode 100644 index 440f3fb0..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/send_photo.po +++ /dev/null @@ -1,171 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/send_photo.rst:3 -msgid "sendPhoto" -msgstr "" - -#: ../../api/methods/send_photo.rst:5 -msgid "Returns: :obj:`Message`" -msgstr "" - -#: aiogram.methods.send_photo.SendPhoto:1 of -msgid "" -"Use this method to send photos. On success, the sent " -":class:`aiogram.types.message.Message` is returned." -msgstr "" - -#: aiogram.methods.send_photo.SendPhoto:3 of -msgid "Source: https://core.telegram.org/bots/api#sendphoto" -msgstr "" - -#: ../../docstring aiogram.methods.send_photo.SendPhoto.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.send_photo.SendPhoto.photo:1 of -msgid "" -"Photo to send. Pass a file_id as String to send a photo that exists on " -"the Telegram servers (recommended), pass an HTTP URL as a String for " -"Telegram to get a photo from the Internet, or upload a new photo using " -"multipart/form-data. The photo must be at most 10 MB in size. The photo's" -" width and height must not exceed 10000 in total. Width and height ratio " -"must be at most 20. :ref:`More information on Sending Files » `" -msgstr "" - -#: ../../docstring aiogram.methods.send_photo.SendPhoto.message_thread_id:1 of -msgid "" -"Unique identifier for the target message thread (topic) of the forum; for" -" forum supergroups only" -msgstr "" - -#: ../../docstring aiogram.methods.send_photo.SendPhoto.caption:1 of -msgid "" -"Photo caption (may also be used when resending photos by *file_id*), " -"0-1024 characters after entities parsing" -msgstr "" - -#: ../../docstring aiogram.methods.send_photo.SendPhoto.parse_mode:1 of -msgid "" -"Mode for parsing entities in the photo caption. See `formatting options " -"`_ for more " -"details." -msgstr "" - -#: ../../docstring aiogram.methods.send_photo.SendPhoto.caption_entities:1 of -msgid "" -"A JSON-serialized list of special entities that appear in the caption, " -"which can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring aiogram.methods.send_photo.SendPhoto.has_spoiler:1 of -msgid "" -"Pass :code:`True` if the photo needs to be covered with a spoiler " -"animation" -msgstr "" - -#: ../../docstring aiogram.methods.send_photo.SendPhoto.disable_notification:1 -#: of -msgid "" -"Sends the message `silently `_. Users will receive a notification with no sound." -msgstr "" - -#: ../../docstring aiogram.methods.send_photo.SendPhoto.protect_content:1 of -msgid "Protects the contents of the sent message from forwarding and saving" -msgstr "" - -#: ../../docstring aiogram.methods.send_photo.SendPhoto.reply_to_message_id:1 -#: of -msgid "If the message is a reply, ID of the original message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_photo.SendPhoto.allow_sending_without_reply:1 of -msgid "" -"Pass :code:`True` if the message should be sent even if the specified " -"replied-to message is not found" -msgstr "" - -#: ../../docstring aiogram.methods.send_photo.SendPhoto.reply_markup:1 of -msgid "" -"Additional interface options. A JSON-serialized object for an `inline " -"keyboard `_, " -"`custom reply keyboard " -"`_, instructions to " -"remove reply keyboard or to force a reply from the user." -msgstr "" - -#: ../../api/methods/send_photo.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/send_photo.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/send_photo.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/send_photo.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/send_photo.rst:29 -msgid ":code:`from aiogram.methods.send_photo import SendPhoto`" -msgstr "" - -#: ../../api/methods/send_photo.rst:30 -msgid "alias: :code:`from aiogram.methods import SendPhoto`" -msgstr "" - -#: ../../api/methods/send_photo.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/send_photo.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/send_photo.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/send_photo.rst:50 -msgid ":meth:`aiogram.types.message.Message.answer_photo`" -msgstr "" - -#: ../../api/methods/send_photo.rst:51 -msgid ":meth:`aiogram.types.message.Message.reply_photo`" -msgstr "" - -#~ msgid "" -#~ "Additional interface options. A JSON-" -#~ "serialized object for an `inline " -#~ "keyboard `_, " -#~ "`custom reply keyboard " -#~ "`_, instructions " -#~ "to remove reply keyboard or to " -#~ "force a reply from the user." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/send_poll.po b/docs/locale/en/LC_MESSAGES/api/methods/send_poll.po deleted file mode 100644 index 9222d2c3..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/send_poll.po +++ /dev/null @@ -1,204 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/send_poll.rst:3 -msgid "sendPoll" -msgstr "" - -#: ../../api/methods/send_poll.rst:5 -msgid "Returns: :obj:`Message`" -msgstr "" - -#: aiogram.methods.send_poll.SendPoll:1 of -msgid "" -"Use this method to send a native poll. On success, the sent " -":class:`aiogram.types.message.Message` is returned." -msgstr "" - -#: aiogram.methods.send_poll.SendPoll:3 of -msgid "Source: https://core.telegram.org/bots/api#sendpoll" -msgstr "" - -#: ../../docstring aiogram.methods.send_poll.SendPoll.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.send_poll.SendPoll.question:1 of -msgid "Poll question, 1-300 characters" -msgstr "" - -#: ../../docstring aiogram.methods.send_poll.SendPoll.options:1 of -msgid "" -"A JSON-serialized list of answer options, 2-10 strings 1-100 characters " -"each" -msgstr "" - -#: ../../docstring aiogram.methods.send_poll.SendPoll.message_thread_id:1 of -msgid "" -"Unique identifier for the target message thread (topic) of the forum; for" -" forum supergroups only" -msgstr "" - -#: ../../docstring aiogram.methods.send_poll.SendPoll.is_anonymous:1 of -msgid ":code:`True`, if the poll needs to be anonymous, defaults to :code:`True`" -msgstr "" - -#: ../../docstring aiogram.methods.send_poll.SendPoll.type:1 of -msgid "Poll type, 'quiz' or 'regular', defaults to 'regular'" -msgstr "" - -#: ../../docstring aiogram.methods.send_poll.SendPoll.allows_multiple_answers:1 -#: of -msgid "" -":code:`True`, if the poll allows multiple answers, ignored for polls in " -"quiz mode, defaults to :code:`False`" -msgstr "" - -#: ../../docstring aiogram.methods.send_poll.SendPoll.correct_option_id:1 of -msgid "" -"0-based identifier of the correct answer option, required for polls in " -"quiz mode" -msgstr "" - -#: ../../docstring aiogram.methods.send_poll.SendPoll.explanation:1 of -msgid "" -"Text that is shown when a user chooses an incorrect answer or taps on the" -" lamp icon in a quiz-style poll, 0-200 characters with at most 2 line " -"feeds after entities parsing" -msgstr "" - -#: ../../docstring aiogram.methods.send_poll.SendPoll.explanation_parse_mode:1 -#: of -msgid "" -"Mode for parsing entities in the explanation. See `formatting options " -"`_ for more " -"details." -msgstr "" - -#: ../../docstring aiogram.methods.send_poll.SendPoll.explanation_entities:1 of -msgid "" -"A JSON-serialized list of special entities that appear in the poll " -"explanation, which can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring aiogram.methods.send_poll.SendPoll.open_period:1 of -msgid "" -"Amount of time in seconds the poll will be active after creation, 5-600. " -"Can't be used together with *close_date*." -msgstr "" - -#: ../../docstring aiogram.methods.send_poll.SendPoll.close_date:1 of -msgid "" -"Point in time (Unix timestamp) when the poll will be automatically " -"closed. Must be at least 5 and no more than 600 seconds in the future. " -"Can't be used together with *open_period*." -msgstr "" - -#: ../../docstring aiogram.methods.send_poll.SendPoll.is_closed:1 of -msgid "" -"Pass :code:`True` if the poll needs to be immediately closed. This can be" -" useful for poll preview." -msgstr "" - -#: ../../docstring aiogram.methods.send_poll.SendPoll.disable_notification:1 of -msgid "" -"Sends the message `silently `_. Users will receive a notification with no sound." -msgstr "" - -#: ../../docstring aiogram.methods.send_poll.SendPoll.protect_content:1 of -msgid "Protects the contents of the sent message from forwarding and saving" -msgstr "" - -#: ../../docstring aiogram.methods.send_poll.SendPoll.reply_to_message_id:1 of -msgid "If the message is a reply, ID of the original message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_poll.SendPoll.allow_sending_without_reply:1 of -msgid "" -"Pass :code:`True` if the message should be sent even if the specified " -"replied-to message is not found" -msgstr "" - -#: ../../docstring aiogram.methods.send_poll.SendPoll.reply_markup:1 of -msgid "" -"Additional interface options. A JSON-serialized object for an `inline " -"keyboard `_, " -"`custom reply keyboard " -"`_, instructions to " -"remove reply keyboard or to force a reply from the user." -msgstr "" - -#: ../../api/methods/send_poll.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/send_poll.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/send_poll.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/send_poll.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/send_poll.rst:29 -msgid ":code:`from aiogram.methods.send_poll import SendPoll`" -msgstr "" - -#: ../../api/methods/send_poll.rst:30 -msgid "alias: :code:`from aiogram.methods import SendPoll`" -msgstr "" - -#: ../../api/methods/send_poll.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/send_poll.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/send_poll.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/send_poll.rst:50 -msgid ":meth:`aiogram.types.message.Message.answer_poll`" -msgstr "" - -#: ../../api/methods/send_poll.rst:51 -msgid ":meth:`aiogram.types.message.Message.reply_poll`" -msgstr "" - -#~ msgid "" -#~ "Additional interface options. A JSON-" -#~ "serialized object for an `inline " -#~ "keyboard `_, " -#~ "`custom reply keyboard " -#~ "`_, instructions " -#~ "to remove reply keyboard or to " -#~ "force a reply from the user." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/send_sticker.po b/docs/locale/en/LC_MESSAGES/api/methods/send_sticker.po deleted file mode 100644 index 24650fbd..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/send_sticker.po +++ /dev/null @@ -1,166 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/methods/send_sticker.rst:3 -msgid "sendSticker" -msgstr "" - -#: ../../api/methods/send_sticker.rst:5 -msgid "Returns: :obj:`Message`" -msgstr "" - -#: aiogram.methods.send_sticker.SendSticker:1 of -msgid "" -"Use this method to send static .WEBP, `animated " -"`_ .TGS, or `video " -"`_ .WEBM " -"stickers. On success, the sent :class:`aiogram.types.message.Message` is " -"returned." -msgstr "" - -#: aiogram.methods.send_sticker.SendSticker:3 of -msgid "Source: https://core.telegram.org/bots/api#sendsticker" -msgstr "" - -#: ../../docstring aiogram.methods.send_sticker.SendSticker.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.send_sticker.SendSticker.sticker:1 of -msgid "" -"Sticker to send. Pass a file_id as String to send a file that exists on " -"the Telegram servers (recommended), pass an HTTP URL as a String for " -"Telegram to get a .WEBP sticker from the Internet, or upload a new .WEBP " -"or .TGS sticker using multipart/form-data. :ref:`More information on " -"Sending Files » `. Video stickers can only be sent by a " -"file_id. Animated stickers can't be sent via an HTTP URL." -msgstr "" - -#: ../../docstring aiogram.methods.send_sticker.SendSticker.message_thread_id:1 -#: of -msgid "" -"Unique identifier for the target message thread (topic) of the forum; for" -" forum supergroups only" -msgstr "" - -#: ../../docstring aiogram.methods.send_sticker.SendSticker.emoji:1 of -msgid "Emoji associated with the sticker; only for just uploaded stickers" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_sticker.SendSticker.disable_notification:1 of -msgid "" -"Sends the message `silently `_. Users will receive a notification with no sound." -msgstr "" - -#: ../../docstring aiogram.methods.send_sticker.SendSticker.protect_content:1 -#: of -msgid "Protects the contents of the sent message from forwarding and saving" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_sticker.SendSticker.reply_to_message_id:1 of -msgid "If the message is a reply, ID of the original message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_sticker.SendSticker.allow_sending_without_reply:1 of -msgid "" -"Pass :code:`True` if the message should be sent even if the specified " -"replied-to message is not found" -msgstr "" - -#: ../../docstring aiogram.methods.send_sticker.SendSticker.reply_markup:1 of -msgid "" -"Additional interface options. A JSON-serialized object for an `inline " -"keyboard `_, " -"`custom reply keyboard " -"`_, instructions to " -"remove reply keyboard or to force a reply from the user." -msgstr "" - -#: ../../api/methods/send_sticker.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/send_sticker.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/send_sticker.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/send_sticker.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/send_sticker.rst:29 -msgid ":code:`from aiogram.methods.send_sticker import SendSticker`" -msgstr "" - -#: ../../api/methods/send_sticker.rst:30 -msgid "alias: :code:`from aiogram.methods import SendSticker`" -msgstr "" - -#: ../../api/methods/send_sticker.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/send_sticker.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/send_sticker.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/send_sticker.rst:50 -msgid ":meth:`aiogram.types.message.Message.answer_sticker`" -msgstr "" - -#: ../../api/methods/send_sticker.rst:51 -msgid ":meth:`aiogram.types.message.Message.reply_sticker`" -msgstr "" - -#~ msgid "" -#~ "Additional interface options. A JSON-" -#~ "serialized object for an `inline " -#~ "keyboard `_, " -#~ "`custom reply keyboard " -#~ "`_, instructions " -#~ "to remove reply keyboard or to " -#~ "force a reply from the user." -#~ msgstr "" - -#~ msgid "" -#~ "Sticker to send. Pass a file_id as" -#~ " String to send a file that " -#~ "exists on the Telegram servers " -#~ "(recommended), pass an HTTP URL as " -#~ "a String for Telegram to get a " -#~ ".WEBP file from the Internet, or " -#~ "upload a new one using multipart" -#~ "/form-data. :ref:`More information on " -#~ "Sending Files » `" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/send_venue.po b/docs/locale/en/LC_MESSAGES/api/methods/send_venue.po deleted file mode 100644 index 848d6898..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/send_venue.po +++ /dev/null @@ -1,172 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/send_venue.rst:3 -msgid "sendVenue" -msgstr "" - -#: ../../api/methods/send_venue.rst:5 -msgid "Returns: :obj:`Message`" -msgstr "" - -#: aiogram.methods.send_venue.SendVenue:1 of -msgid "" -"Use this method to send information about a venue. On success, the sent " -":class:`aiogram.types.message.Message` is returned." -msgstr "" - -#: aiogram.methods.send_venue.SendVenue:3 of -msgid "Source: https://core.telegram.org/bots/api#sendvenue" -msgstr "" - -#: ../../docstring aiogram.methods.send_venue.SendVenue.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.send_venue.SendVenue.latitude:1 of -msgid "Latitude of the venue" -msgstr "" - -#: ../../docstring aiogram.methods.send_venue.SendVenue.longitude:1 of -msgid "Longitude of the venue" -msgstr "" - -#: ../../docstring aiogram.methods.send_venue.SendVenue.title:1 of -msgid "Name of the venue" -msgstr "" - -#: ../../docstring aiogram.methods.send_venue.SendVenue.address:1 of -msgid "Address of the venue" -msgstr "" - -#: ../../docstring aiogram.methods.send_venue.SendVenue.message_thread_id:1 of -msgid "" -"Unique identifier for the target message thread (topic) of the forum; for" -" forum supergroups only" -msgstr "" - -#: ../../docstring aiogram.methods.send_venue.SendVenue.foursquare_id:1 of -msgid "Foursquare identifier of the venue" -msgstr "" - -#: ../../docstring aiogram.methods.send_venue.SendVenue.foursquare_type:1 of -msgid "" -"Foursquare type of the venue, if known. (For example, " -"'arts_entertainment/default', 'arts_entertainment/aquarium' or " -"'food/icecream'.)" -msgstr "" - -#: ../../docstring aiogram.methods.send_venue.SendVenue.google_place_id:1 of -msgid "Google Places identifier of the venue" -msgstr "" - -#: ../../docstring aiogram.methods.send_venue.SendVenue.google_place_type:1 of -msgid "" -"Google Places type of the venue. (See `supported types " -"`_.)" -msgstr "" - -#: ../../docstring aiogram.methods.send_venue.SendVenue.disable_notification:1 -#: of -msgid "" -"Sends the message `silently `_. Users will receive a notification with no sound." -msgstr "" - -#: ../../docstring aiogram.methods.send_venue.SendVenue.protect_content:1 of -msgid "Protects the contents of the sent message from forwarding and saving" -msgstr "" - -#: ../../docstring aiogram.methods.send_venue.SendVenue.reply_to_message_id:1 -#: of -msgid "If the message is a reply, ID of the original message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_venue.SendVenue.allow_sending_without_reply:1 of -msgid "" -"Pass :code:`True` if the message should be sent even if the specified " -"replied-to message is not found" -msgstr "" - -#: ../../docstring aiogram.methods.send_venue.SendVenue.reply_markup:1 of -msgid "" -"Additional interface options. A JSON-serialized object for an `inline " -"keyboard `_, " -"`custom reply keyboard " -"`_, instructions to " -"remove reply keyboard or to force a reply from the user." -msgstr "" - -#: ../../api/methods/send_venue.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/send_venue.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/send_venue.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/send_venue.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/send_venue.rst:29 -msgid ":code:`from aiogram.methods.send_venue import SendVenue`" -msgstr "" - -#: ../../api/methods/send_venue.rst:30 -msgid "alias: :code:`from aiogram.methods import SendVenue`" -msgstr "" - -#: ../../api/methods/send_venue.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/send_venue.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/send_venue.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/send_venue.rst:50 -msgid ":meth:`aiogram.types.message.Message.answer_venue`" -msgstr "" - -#: ../../api/methods/send_venue.rst:51 -msgid ":meth:`aiogram.types.message.Message.reply_venue`" -msgstr "" - -#~ msgid "" -#~ "Additional interface options. A JSON-" -#~ "serialized object for an `inline " -#~ "keyboard `_, " -#~ "`custom reply keyboard " -#~ "`_, instructions " -#~ "to remove reply keyboard or to " -#~ "force a reply from the user." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/send_video.po b/docs/locale/en/LC_MESSAGES/api/methods/send_video.po deleted file mode 100644 index 5a575db2..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/send_video.po +++ /dev/null @@ -1,201 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/send_video.rst:3 -msgid "sendVideo" -msgstr "" - -#: ../../api/methods/send_video.rst:5 -msgid "Returns: :obj:`Message`" -msgstr "" - -#: aiogram.methods.send_video.SendVideo:1 of -msgid "" -"Use this method to send video files, Telegram clients support MPEG4 " -"videos (other formats may be sent as " -":class:`aiogram.types.document.Document`). On success, the sent " -":class:`aiogram.types.message.Message` is returned. Bots can currently " -"send video files of up to 50 MB in size, this limit may be changed in the" -" future." -msgstr "" - -#: aiogram.methods.send_video.SendVideo:3 of -msgid "Source: https://core.telegram.org/bots/api#sendvideo" -msgstr "" - -#: ../../docstring aiogram.methods.send_video.SendVideo.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.send_video.SendVideo.video:1 of -msgid "" -"Video to send. Pass a file_id as String to send a video that exists on " -"the Telegram servers (recommended), pass an HTTP URL as a String for " -"Telegram to get a video from the Internet, or upload a new video using " -"multipart/form-data. :ref:`More information on Sending Files » `" -msgstr "" - -#: ../../docstring aiogram.methods.send_video.SendVideo.message_thread_id:1 of -msgid "" -"Unique identifier for the target message thread (topic) of the forum; for" -" forum supergroups only" -msgstr "" - -#: ../../docstring aiogram.methods.send_video.SendVideo.duration:1 of -msgid "Duration of sent video in seconds" -msgstr "" - -#: ../../docstring aiogram.methods.send_video.SendVideo.width:1 of -msgid "Video width" -msgstr "" - -#: ../../docstring aiogram.methods.send_video.SendVideo.height:1 of -msgid "Video height" -msgstr "" - -#: ../../docstring aiogram.methods.send_video.SendVideo.thumb:1 of -msgid "" -"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 » `" -msgstr "" - -#: ../../docstring aiogram.methods.send_video.SendVideo.caption:1 of -msgid "" -"Video caption (may also be used when resending videos by *file_id*), " -"0-1024 characters after entities parsing" -msgstr "" - -#: ../../docstring aiogram.methods.send_video.SendVideo.parse_mode:1 of -msgid "" -"Mode for parsing entities in the video caption. See `formatting options " -"`_ for more " -"details." -msgstr "" - -#: ../../docstring aiogram.methods.send_video.SendVideo.caption_entities:1 of -msgid "" -"A JSON-serialized list of special entities that appear in the caption, " -"which can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring aiogram.methods.send_video.SendVideo.has_spoiler:1 of -msgid "" -"Pass :code:`True` if the video needs to be covered with a spoiler " -"animation" -msgstr "" - -#: ../../docstring aiogram.methods.send_video.SendVideo.supports_streaming:1 of -msgid "Pass :code:`True` if the uploaded video is suitable for streaming" -msgstr "" - -#: ../../docstring aiogram.methods.send_video.SendVideo.disable_notification:1 -#: of -msgid "" -"Sends the message `silently `_. Users will receive a notification with no sound." -msgstr "" - -#: ../../docstring aiogram.methods.send_video.SendVideo.protect_content:1 of -msgid "Protects the contents of the sent message from forwarding and saving" -msgstr "" - -#: ../../docstring aiogram.methods.send_video.SendVideo.reply_to_message_id:1 -#: of -msgid "If the message is a reply, ID of the original message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_video.SendVideo.allow_sending_without_reply:1 of -msgid "" -"Pass :code:`True` if the message should be sent even if the specified " -"replied-to message is not found" -msgstr "" - -#: ../../docstring aiogram.methods.send_video.SendVideo.reply_markup:1 of -msgid "" -"Additional interface options. A JSON-serialized object for an `inline " -"keyboard `_, " -"`custom reply keyboard " -"`_, instructions to " -"remove reply keyboard or to force a reply from the user." -msgstr "" - -#: ../../api/methods/send_video.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/send_video.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/send_video.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/send_video.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/send_video.rst:29 -msgid ":code:`from aiogram.methods.send_video import SendVideo`" -msgstr "" - -#: ../../api/methods/send_video.rst:30 -msgid "alias: :code:`from aiogram.methods import SendVideo`" -msgstr "" - -#: ../../api/methods/send_video.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/send_video.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/send_video.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/send_video.rst:50 -msgid ":meth:`aiogram.types.message.Message.answer_video`" -msgstr "" - -#: ../../api/methods/send_video.rst:51 -msgid ":meth:`aiogram.types.message.Message.reply_video`" -msgstr "" - -#~ msgid "" -#~ "Additional interface options. A JSON-" -#~ "serialized object for an `inline " -#~ "keyboard `_, " -#~ "`custom reply keyboard " -#~ "`_, instructions " -#~ "to remove reply keyboard or to " -#~ "force a reply from the user." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/send_video_note.po b/docs/locale/en/LC_MESSAGES/api/methods/send_video_note.po deleted file mode 100644 index 959a0407..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/send_video_note.po +++ /dev/null @@ -1,170 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/send_video_note.rst:3 -msgid "sendVideoNote" -msgstr "" - -#: ../../api/methods/send_video_note.rst:5 -msgid "Returns: :obj:`Message`" -msgstr "" - -#: aiogram.methods.send_video_note.SendVideoNote:1 of -msgid "" -"As of `v.4.0 `_, " -"Telegram clients support rounded square MPEG4 videos of up to 1 minute " -"long. Use this method to send video messages. On success, the sent " -":class:`aiogram.types.message.Message` is returned." -msgstr "" - -#: aiogram.methods.send_video_note.SendVideoNote:3 of -msgid "Source: https://core.telegram.org/bots/api#sendvideonote" -msgstr "" - -#: ../../docstring aiogram.methods.send_video_note.SendVideoNote.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.send_video_note.SendVideoNote.video_note:1 -#: of -msgid "" -"Video note to send. Pass a file_id as String to send a video note that " -"exists on the Telegram servers (recommended) or upload a new video using " -"multipart/form-data. :ref:`More information on Sending Files » `. Sending video notes by a URL is currently unsupported" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_video_note.SendVideoNote.message_thread_id:1 of -msgid "" -"Unique identifier for the target message thread (topic) of the forum; for" -" forum supergroups only" -msgstr "" - -#: ../../docstring aiogram.methods.send_video_note.SendVideoNote.duration:1 of -msgid "Duration of sent video in seconds" -msgstr "" - -#: ../../docstring aiogram.methods.send_video_note.SendVideoNote.length:1 of -msgid "Video width and height, i.e. diameter of the video message" -msgstr "" - -#: ../../docstring aiogram.methods.send_video_note.SendVideoNote.thumb:1 of -msgid "" -"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 » `" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_video_note.SendVideoNote.disable_notification:1 of -msgid "" -"Sends the message `silently `_. Users will receive a notification with no sound." -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_video_note.SendVideoNote.protect_content:1 of -msgid "Protects the contents of the sent message from forwarding and saving" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_video_note.SendVideoNote.reply_to_message_id:1 of -msgid "If the message is a reply, ID of the original message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_video_note.SendVideoNote.allow_sending_without_reply:1 -#: of -msgid "" -"Pass :code:`True` if the message should be sent even if the specified " -"replied-to message is not found" -msgstr "" - -#: ../../docstring aiogram.methods.send_video_note.SendVideoNote.reply_markup:1 -#: of -msgid "" -"Additional interface options. A JSON-serialized object for an `inline " -"keyboard `_, " -"`custom reply keyboard " -"`_, instructions to " -"remove reply keyboard or to force a reply from the user." -msgstr "" - -#: ../../api/methods/send_video_note.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/send_video_note.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/send_video_note.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/send_video_note.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/send_video_note.rst:29 -msgid ":code:`from aiogram.methods.send_video_note import SendVideoNote`" -msgstr "" - -#: ../../api/methods/send_video_note.rst:30 -msgid "alias: :code:`from aiogram.methods import SendVideoNote`" -msgstr "" - -#: ../../api/methods/send_video_note.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/send_video_note.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/send_video_note.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/send_video_note.rst:50 -msgid ":meth:`aiogram.types.message.Message.answer_video_note`" -msgstr "" - -#: ../../api/methods/send_video_note.rst:51 -msgid ":meth:`aiogram.types.message.Message.reply_video_note`" -msgstr "" - -#~ msgid "" -#~ "Additional interface options. A JSON-" -#~ "serialized object for an `inline " -#~ "keyboard `_, " -#~ "`custom reply keyboard " -#~ "`_, instructions " -#~ "to remove reply keyboard or to " -#~ "force a reply from the user." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/send_voice.po b/docs/locale/en/LC_MESSAGES/api/methods/send_voice.po deleted file mode 100644 index 553a3265..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/send_voice.po +++ /dev/null @@ -1,171 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/send_voice.rst:3 -msgid "sendVoice" -msgstr "" - -#: ../../api/methods/send_voice.rst:5 -msgid "Returns: :obj:`Message`" -msgstr "" - -#: aiogram.methods.send_voice.SendVoice:1 of -msgid "" -"Use this method to send audio files, if you want Telegram clients to " -"display the file as a playable voice message. For this to work, your " -"audio must be in an .OGG file encoded with OPUS (other formats may be " -"sent as :class:`aiogram.types.audio.Audio` or " -":class:`aiogram.types.document.Document`). On success, the sent " -":class:`aiogram.types.message.Message` is returned. Bots can currently " -"send voice messages of up to 50 MB in size, this limit may be changed in " -"the future." -msgstr "" - -#: aiogram.methods.send_voice.SendVoice:3 of -msgid "Source: https://core.telegram.org/bots/api#sendvoice" -msgstr "" - -#: ../../docstring aiogram.methods.send_voice.SendVoice.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.send_voice.SendVoice.voice:1 of -msgid "" -"Audio file to send. Pass a file_id as String to send a file that exists " -"on the Telegram servers (recommended), 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 » `" -msgstr "" - -#: ../../docstring aiogram.methods.send_voice.SendVoice.message_thread_id:1 of -msgid "" -"Unique identifier for the target message thread (topic) of the forum; for" -" forum supergroups only" -msgstr "" - -#: ../../docstring aiogram.methods.send_voice.SendVoice.caption:1 of -msgid "Voice message caption, 0-1024 characters after entities parsing" -msgstr "" - -#: ../../docstring aiogram.methods.send_voice.SendVoice.parse_mode:1 of -msgid "" -"Mode for parsing entities in the voice message caption. See `formatting " -"options `_ for " -"more details." -msgstr "" - -#: ../../docstring aiogram.methods.send_voice.SendVoice.caption_entities:1 of -msgid "" -"A JSON-serialized list of special entities that appear in the caption, " -"which can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring aiogram.methods.send_voice.SendVoice.duration:1 of -msgid "Duration of the voice message in seconds" -msgstr "" - -#: ../../docstring aiogram.methods.send_voice.SendVoice.disable_notification:1 -#: of -msgid "" -"Sends the message `silently `_. Users will receive a notification with no sound." -msgstr "" - -#: ../../docstring aiogram.methods.send_voice.SendVoice.protect_content:1 of -msgid "Protects the contents of the sent message from forwarding and saving" -msgstr "" - -#: ../../docstring aiogram.methods.send_voice.SendVoice.reply_to_message_id:1 -#: of -msgid "If the message is a reply, ID of the original message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.send_voice.SendVoice.allow_sending_without_reply:1 of -msgid "" -"Pass :code:`True` if the message should be sent even if the specified " -"replied-to message is not found" -msgstr "" - -#: ../../docstring aiogram.methods.send_voice.SendVoice.reply_markup:1 of -msgid "" -"Additional interface options. A JSON-serialized object for an `inline " -"keyboard `_, " -"`custom reply keyboard " -"`_, instructions to " -"remove reply keyboard or to force a reply from the user." -msgstr "" - -#: ../../api/methods/send_voice.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/send_voice.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/send_voice.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/send_voice.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/send_voice.rst:29 -msgid ":code:`from aiogram.methods.send_voice import SendVoice`" -msgstr "" - -#: ../../api/methods/send_voice.rst:30 -msgid "alias: :code:`from aiogram.methods import SendVoice`" -msgstr "" - -#: ../../api/methods/send_voice.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/send_voice.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/send_voice.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/send_voice.rst:50 -msgid ":meth:`aiogram.types.message.Message.answer_voice`" -msgstr "" - -#: ../../api/methods/send_voice.rst:51 -msgid ":meth:`aiogram.types.message.Message.reply_voice`" -msgstr "" - -#~ msgid "" -#~ "Additional interface options. A JSON-" -#~ "serialized object for an `inline " -#~ "keyboard `_, " -#~ "`custom reply keyboard " -#~ "`_, instructions " -#~ "to remove reply keyboard or to " -#~ "force a reply from the user." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/set_chat_administrator_custom_title.po b/docs/locale/en/LC_MESSAGES/api/methods/set_chat_administrator_custom_title.po deleted file mode 100644 index ee28db9b..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/set_chat_administrator_custom_title.po +++ /dev/null @@ -1,102 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/set_chat_administrator_custom_title.rst:3 -msgid "setChatAdministratorCustomTitle" -msgstr "" - -#: ../../api/methods/set_chat_administrator_custom_title.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.set_chat_administrator_custom_title.SetChatAdministratorCustomTitle:1 -#: of -msgid "" -"Use this method to set a custom title for an administrator in a " -"supergroup promoted by the bot. Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.set_chat_administrator_custom_title.SetChatAdministratorCustomTitle:3 -#: of -msgid "Source: https://core.telegram.org/bots/api#setchatadministratorcustomtitle" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_chat_administrator_custom_title.SetChatAdministratorCustomTitle.chat_id:1 -#: of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup (in the format :code:`@supergroupusername`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_chat_administrator_custom_title.SetChatAdministratorCustomTitle.user_id:1 -#: of -msgid "Unique identifier of the target user" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_chat_administrator_custom_title.SetChatAdministratorCustomTitle.custom_title:1 -#: of -msgid "" -"New custom title for the administrator; 0-16 characters, emoji are not " -"allowed" -msgstr "" - -#: ../../api/methods/set_chat_administrator_custom_title.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/set_chat_administrator_custom_title.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/set_chat_administrator_custom_title.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/set_chat_administrator_custom_title.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/set_chat_administrator_custom_title.rst:29 -msgid "" -":code:`from aiogram.methods.set_chat_administrator_custom_title import " -"SetChatAdministratorCustomTitle`" -msgstr "" - -#: ../../api/methods/set_chat_administrator_custom_title.rst:30 -msgid "alias: :code:`from aiogram.methods import SetChatAdministratorCustomTitle`" -msgstr "" - -#: ../../api/methods/set_chat_administrator_custom_title.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/set_chat_administrator_custom_title.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/set_chat_administrator_custom_title.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/set_chat_administrator_custom_title.rst:50 -msgid ":meth:`aiogram.types.chat.Chat.set_administrator_custom_title`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/set_chat_description.po b/docs/locale/en/LC_MESSAGES/api/methods/set_chat_description.po deleted file mode 100644 index 3c42acee..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/set_chat_description.po +++ /dev/null @@ -1,92 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/set_chat_description.rst:3 -msgid "setChatDescription" -msgstr "" - -#: ../../api/methods/set_chat_description.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.set_chat_description.SetChatDescription:1 of -msgid "" -"Use this method to change the description of a group, a supergroup or a " -"channel. The bot must be an administrator in the chat for this to work " -"and must have the appropriate administrator rights. Returns :code:`True` " -"on success." -msgstr "" - -#: aiogram.methods.set_chat_description.SetChatDescription:3 of -msgid "Source: https://core.telegram.org/bots/api#setchatdescription" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_chat_description.SetChatDescription.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_chat_description.SetChatDescription.description:1 of -msgid "New chat description, 0-255 characters" -msgstr "" - -#: ../../api/methods/set_chat_description.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/set_chat_description.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/set_chat_description.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/set_chat_description.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/set_chat_description.rst:29 -msgid "" -":code:`from aiogram.methods.set_chat_description import " -"SetChatDescription`" -msgstr "" - -#: ../../api/methods/set_chat_description.rst:30 -msgid "alias: :code:`from aiogram.methods import SetChatDescription`" -msgstr "" - -#: ../../api/methods/set_chat_description.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/set_chat_description.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/set_chat_description.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/set_chat_description.rst:50 -msgid ":meth:`aiogram.types.chat.Chat.set_description`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/set_chat_menu_button.po b/docs/locale/en/LC_MESSAGES/api/methods/set_chat_menu_button.po deleted file mode 100644 index b40236df..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/set_chat_menu_button.po +++ /dev/null @@ -1,82 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/set_chat_menu_button.rst:3 -msgid "setChatMenuButton" -msgstr "" - -#: ../../api/methods/set_chat_menu_button.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.set_chat_menu_button.SetChatMenuButton:1 of -msgid "" -"Use this method to change the bot's menu button in a private chat, or the" -" default menu button. Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.set_chat_menu_button.SetChatMenuButton:3 of -msgid "Source: https://core.telegram.org/bots/api#setchatmenubutton" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_chat_menu_button.SetChatMenuButton.chat_id:1 of -msgid "" -"Unique identifier for the target private chat. If not specified, default " -"bot's menu button will be changed" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_chat_menu_button.SetChatMenuButton.menu_button:1 of -msgid "" -"A JSON-serialized object for the bot's new menu button. Defaults to " -":class:`aiogram.types.menu_button_default.MenuButtonDefault`" -msgstr "" - -#: ../../api/methods/set_chat_menu_button.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/set_chat_menu_button.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/set_chat_menu_button.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/set_chat_menu_button.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/set_chat_menu_button.rst:29 -msgid ":code:`from aiogram.methods.set_chat_menu_button import SetChatMenuButton`" -msgstr "" - -#: ../../api/methods/set_chat_menu_button.rst:30 -msgid "alias: :code:`from aiogram.methods import SetChatMenuButton`" -msgstr "" - -#: ../../api/methods/set_chat_menu_button.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/set_chat_menu_button.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/set_chat_permissions.po b/docs/locale/en/LC_MESSAGES/api/methods/set_chat_permissions.po deleted file mode 100644 index ff34fff6..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/set_chat_permissions.po +++ /dev/null @@ -1,105 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/methods/set_chat_permissions.rst:3 -msgid "setChatPermissions" -msgstr "" - -#: ../../api/methods/set_chat_permissions.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.set_chat_permissions.SetChatPermissions:1 of -msgid "" -"Use this method to set default chat permissions for all members. The bot " -"must be an administrator in the group or a supergroup for this to work " -"and must have the *can_restrict_members* administrator rights. Returns " -":code:`True` on success." -msgstr "" - -#: aiogram.methods.set_chat_permissions.SetChatPermissions:3 of -msgid "Source: https://core.telegram.org/bots/api#setchatpermissions" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_chat_permissions.SetChatPermissions.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup (in the format :code:`@supergroupusername`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_chat_permissions.SetChatPermissions.permissions:1 of -msgid "A JSON-serialized object for new default chat permissions" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_chat_permissions.SetChatPermissions.use_independent_chat_permissions:1 -#: of -msgid "" -"Pass :code:`True` if chat permissions are set independently. Otherwise, " -"the *can_send_other_messages* and *can_add_web_page_previews* permissions" -" will imply the *can_send_messages*, *can_send_audios*, " -"*can_send_documents*, *can_send_photos*, *can_send_videos*, " -"*can_send_video_notes*, and *can_send_voice_notes* permissions; the " -"*can_send_polls* permission will imply the *can_send_messages* " -"permission." -msgstr "" - -#: ../../api/methods/set_chat_permissions.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/set_chat_permissions.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/set_chat_permissions.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/set_chat_permissions.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/set_chat_permissions.rst:29 -msgid "" -":code:`from aiogram.methods.set_chat_permissions import " -"SetChatPermissions`" -msgstr "" - -#: ../../api/methods/set_chat_permissions.rst:30 -msgid "alias: :code:`from aiogram.methods import SetChatPermissions`" -msgstr "" - -#: ../../api/methods/set_chat_permissions.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/set_chat_permissions.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/set_chat_permissions.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/set_chat_permissions.rst:50 -msgid ":meth:`aiogram.types.chat.Chat.set_permissions`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/set_chat_photo.po b/docs/locale/en/LC_MESSAGES/api/methods/set_chat_photo.po deleted file mode 100644 index ab0cc9a7..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/set_chat_photo.po +++ /dev/null @@ -1,84 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/set_chat_photo.rst:3 -msgid "setChatPhoto" -msgstr "" - -#: ../../api/methods/set_chat_photo.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.set_chat_photo.SetChatPhoto:1 of -msgid "" -"Use this method to set a new profile photo for the chat. Photos can't be " -"changed for private chats. The bot must be an administrator in the chat " -"for this to work and must have the appropriate administrator rights. " -"Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.set_chat_photo.SetChatPhoto:3 of -msgid "Source: https://core.telegram.org/bots/api#setchatphoto" -msgstr "" - -#: ../../docstring aiogram.methods.set_chat_photo.SetChatPhoto.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.set_chat_photo.SetChatPhoto.photo:1 of -msgid "New chat photo, uploaded using multipart/form-data" -msgstr "" - -#: ../../api/methods/set_chat_photo.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/set_chat_photo.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/set_chat_photo.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/set_chat_photo.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/set_chat_photo.rst:29 -msgid ":code:`from aiogram.methods.set_chat_photo import SetChatPhoto`" -msgstr "" - -#: ../../api/methods/set_chat_photo.rst:30 -msgid "alias: :code:`from aiogram.methods import SetChatPhoto`" -msgstr "" - -#: ../../api/methods/set_chat_photo.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/set_chat_photo.rst:43 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/set_chat_photo.rst:45 -msgid ":meth:`aiogram.types.chat.Chat.set_photo`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/set_chat_sticker_set.po b/docs/locale/en/LC_MESSAGES/api/methods/set_chat_sticker_set.po deleted file mode 100644 index b5441109..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/set_chat_sticker_set.po +++ /dev/null @@ -1,92 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/set_chat_sticker_set.rst:3 -msgid "setChatStickerSet" -msgstr "" - -#: ../../api/methods/set_chat_sticker_set.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.set_chat_sticker_set.SetChatStickerSet:1 of -msgid "" -"Use this method to set a new group sticker set for a supergroup. The bot " -"must be an administrator in the chat for this to work and must have the " -"appropriate administrator rights. Use the field *can_set_sticker_set* " -"optionally returned in :class:`aiogram.methods.get_chat.GetChat` requests" -" to check if the bot can use this method. Returns :code:`True` on " -"success." -msgstr "" - -#: aiogram.methods.set_chat_sticker_set.SetChatStickerSet:3 of -msgid "Source: https://core.telegram.org/bots/api#setchatstickerset" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_chat_sticker_set.SetChatStickerSet.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup (in the format :code:`@supergroupusername`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_chat_sticker_set.SetChatStickerSet.sticker_set_name:1 of -msgid "Name of the sticker set to be set as the group sticker set" -msgstr "" - -#: ../../api/methods/set_chat_sticker_set.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/set_chat_sticker_set.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/set_chat_sticker_set.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/set_chat_sticker_set.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/set_chat_sticker_set.rst:29 -msgid ":code:`from aiogram.methods.set_chat_sticker_set import SetChatStickerSet`" -msgstr "" - -#: ../../api/methods/set_chat_sticker_set.rst:30 -msgid "alias: :code:`from aiogram.methods import SetChatStickerSet`" -msgstr "" - -#: ../../api/methods/set_chat_sticker_set.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/set_chat_sticker_set.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/set_chat_sticker_set.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/set_chat_sticker_set.rst:50 -msgid ":meth:`aiogram.types.chat.Chat.set_sticker_set`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/set_chat_title.po b/docs/locale/en/LC_MESSAGES/api/methods/set_chat_title.po deleted file mode 100644 index da3c936e..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/set_chat_title.po +++ /dev/null @@ -1,91 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/set_chat_title.rst:3 -msgid "setChatTitle" -msgstr "" - -#: ../../api/methods/set_chat_title.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.set_chat_title.SetChatTitle:1 of -msgid "" -"Use this method to change the title of a chat. Titles can't be changed " -"for private chats. The bot must be an administrator in the chat for this " -"to work and must have the appropriate administrator rights. Returns " -":code:`True` on success." -msgstr "" - -#: aiogram.methods.set_chat_title.SetChatTitle:3 of -msgid "Source: https://core.telegram.org/bots/api#setchattitle" -msgstr "" - -#: ../../docstring aiogram.methods.set_chat_title.SetChatTitle.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.set_chat_title.SetChatTitle.title:1 of -msgid "New chat title, 1-128 characters" -msgstr "" - -#: ../../api/methods/set_chat_title.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/set_chat_title.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/set_chat_title.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/set_chat_title.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/set_chat_title.rst:29 -msgid ":code:`from aiogram.methods.set_chat_title import SetChatTitle`" -msgstr "" - -#: ../../api/methods/set_chat_title.rst:30 -msgid "alias: :code:`from aiogram.methods import SetChatTitle`" -msgstr "" - -#: ../../api/methods/set_chat_title.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/set_chat_title.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/set_chat_title.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/set_chat_title.rst:50 -msgid ":meth:`aiogram.types.chat.Chat.set_title`" -msgstr "" - -#~ msgid "New chat title, 1-255 characters" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/set_custom_emoji_sticker_set_thumbnail.po b/docs/locale/en/LC_MESSAGES/api/methods/set_custom_emoji_sticker_set_thumbnail.po deleted file mode 100644 index afadc9a2..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/set_custom_emoji_sticker_set_thumbnail.po +++ /dev/null @@ -1,90 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2023, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2023. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/methods/set_custom_emoji_sticker_set_thumbnail.rst:3 -msgid "setCustomEmojiStickerSetThumbnail" -msgstr "" - -#: ../../api/methods/set_custom_emoji_sticker_set_thumbnail.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.set_custom_emoji_sticker_set_thumbnail.SetCustomEmojiStickerSetThumbnail:1 -#: of -msgid "" -"Use this method to set the thumbnail of a custom emoji sticker set. " -"Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.set_custom_emoji_sticker_set_thumbnail.SetCustomEmojiStickerSetThumbnail:3 -#: of -msgid "" -"Source: " -"https://core.telegram.org/bots/api#setcustomemojistickersetthumbnail" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_custom_emoji_sticker_set_thumbnail.SetCustomEmojiStickerSetThumbnail.name:1 -#: of -msgid "Sticker set name" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_custom_emoji_sticker_set_thumbnail.SetCustomEmojiStickerSetThumbnail.custom_emoji_id:1 -#: of -msgid "" -"Custom emoji identifier of a sticker from the sticker set; pass an empty " -"string to drop the thumbnail and use the first sticker as the thumbnail." -msgstr "" - -#: ../../api/methods/set_custom_emoji_sticker_set_thumbnail.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/set_custom_emoji_sticker_set_thumbnail.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/set_custom_emoji_sticker_set_thumbnail.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/set_custom_emoji_sticker_set_thumbnail.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/set_custom_emoji_sticker_set_thumbnail.rst:29 -msgid "" -":code:`from aiogram.methods.set_custom_emoji_sticker_set_thumbnail import" -" SetCustomEmojiStickerSetThumbnail`" -msgstr "" - -#: ../../api/methods/set_custom_emoji_sticker_set_thumbnail.rst:30 -msgid "" -"alias: :code:`from aiogram.methods import " -"SetCustomEmojiStickerSetThumbnail`" -msgstr "" - -#: ../../api/methods/set_custom_emoji_sticker_set_thumbnail.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/set_custom_emoji_sticker_set_thumbnail.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/set_game_score.po b/docs/locale/en/LC_MESSAGES/api/methods/set_game_score.po deleted file mode 100644 index 215ab0ab..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/set_game_score.po +++ /dev/null @@ -1,112 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/set_game_score.rst:3 -msgid "setGameScore" -msgstr "" - -#: ../../api/methods/set_game_score.rst:5 -msgid "Returns: :obj:`Union[Message, bool]`" -msgstr "" - -#: aiogram.methods.set_game_score.SetGameScore:1 of -msgid "" -"Use this method to set the score of the specified user in a game message." -" On success, if the message is not an inline message, the " -":class:`aiogram.types.message.Message` is returned, otherwise " -":code:`True` is returned. Returns an error, if the new score is not " -"greater than the user's current score in the chat and *force* is " -":code:`False`." -msgstr "" - -#: aiogram.methods.set_game_score.SetGameScore:3 of -msgid "Source: https://core.telegram.org/bots/api#setgamescore" -msgstr "" - -#: ../../docstring aiogram.methods.set_game_score.SetGameScore.user_id:1 of -msgid "User identifier" -msgstr "" - -#: ../../docstring aiogram.methods.set_game_score.SetGameScore.score:1 of -msgid "New score, must be non-negative" -msgstr "" - -#: ../../docstring aiogram.methods.set_game_score.SetGameScore.force:1 of -msgid "" -"Pass :code:`True` if the high score is allowed to decrease. This can be " -"useful when fixing mistakes or banning cheaters" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_game_score.SetGameScore.disable_edit_message:1 of -msgid "" -"Pass :code:`True` if the game message should not be automatically edited " -"to include the current scoreboard" -msgstr "" - -#: ../../docstring aiogram.methods.set_game_score.SetGameScore.chat_id:1 of -msgid "" -"Required if *inline_message_id* is not specified. Unique identifier for " -"the target chat" -msgstr "" - -#: ../../docstring aiogram.methods.set_game_score.SetGameScore.message_id:1 of -msgid "" -"Required if *inline_message_id* is not specified. Identifier of the sent " -"message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_game_score.SetGameScore.inline_message_id:1 of -msgid "" -"Required if *chat_id* and *message_id* are not specified. Identifier of " -"the inline message" -msgstr "" - -#: ../../api/methods/set_game_score.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/set_game_score.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/set_game_score.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/set_game_score.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/set_game_score.rst:29 -msgid ":code:`from aiogram.methods.set_game_score import SetGameScore`" -msgstr "" - -#: ../../api/methods/set_game_score.rst:30 -msgid "alias: :code:`from aiogram.methods import SetGameScore`" -msgstr "" - -#: ../../api/methods/set_game_score.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/set_game_score.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/set_my_commands.po b/docs/locale/en/LC_MESSAGES/api/methods/set_my_commands.po deleted file mode 100644 index 8a9400fb..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/set_my_commands.po +++ /dev/null @@ -1,100 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/set_my_commands.rst:3 -msgid "setMyCommands" -msgstr "" - -#: ../../api/methods/set_my_commands.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.set_my_commands.SetMyCommands:1 of -msgid "" -"Use this method to change the list of the bot's commands. See `this " -"manual `_ for more " -"details about bot commands. Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.set_my_commands.SetMyCommands:3 of -msgid "Source: https://core.telegram.org/bots/api#setmycommands" -msgstr "" - -#: ../../docstring aiogram.methods.set_my_commands.SetMyCommands.commands:1 of -msgid "" -"A JSON-serialized list of bot commands to be set as the list of the bot's" -" commands. At most 100 commands can be specified." -msgstr "" - -#: ../../docstring aiogram.methods.set_my_commands.SetMyCommands.scope:1 of -msgid "" -"A JSON-serialized object, describing scope of users for which the " -"commands are relevant. Defaults to " -":class:`aiogram.types.bot_command_scope_default.BotCommandScopeDefault`." -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_my_commands.SetMyCommands.language_code:1 of -msgid "" -"A two-letter ISO 639-1 language code. If empty, commands will be applied " -"to all users from the given scope, for whose language there are no " -"dedicated commands" -msgstr "" - -#: ../../api/methods/set_my_commands.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/set_my_commands.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/set_my_commands.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/set_my_commands.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/set_my_commands.rst:29 -msgid ":code:`from aiogram.methods.set_my_commands import SetMyCommands`" -msgstr "" - -#: ../../api/methods/set_my_commands.rst:30 -msgid "alias: :code:`from aiogram.methods import SetMyCommands`" -msgstr "" - -#: ../../api/methods/set_my_commands.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/set_my_commands.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#~ msgid "" -#~ "Use this method to change the list" -#~ " of the bot's commands. See " -#~ "`https://core.telegram.org/bots#commands " -#~ "`_`https://core.telegram.org/bots#commands" -#~ " `_ for more" -#~ " details about bot commands. Returns " -#~ ":code:`True` on success." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/set_my_default_administrator_rights.po b/docs/locale/en/LC_MESSAGES/api/methods/set_my_default_administrator_rights.po deleted file mode 100644 index 87382f51..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/set_my_default_administrator_rights.po +++ /dev/null @@ -1,102 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/methods/set_my_default_administrator_rights.rst:3 -msgid "setMyDefaultAdministratorRights" -msgstr "" - -#: ../../api/methods/set_my_default_administrator_rights.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.set_my_default_administrator_rights.SetMyDefaultAdministratorRights:1 -#: of -msgid "" -"Use this method to change the default administrator rights requested by " -"the bot when it's added as an administrator to groups or channels. These " -"rights will be suggested to users, but they are free to modify the list " -"before adding the bot. Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.set_my_default_administrator_rights.SetMyDefaultAdministratorRights:3 -#: of -msgid "Source: https://core.telegram.org/bots/api#setmydefaultadministratorrights" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_my_default_administrator_rights.SetMyDefaultAdministratorRights.rights:1 -#: of -msgid "" -"A JSON-serialized object describing new default administrator rights. If " -"not specified, the default administrator rights will be cleared." -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_my_default_administrator_rights.SetMyDefaultAdministratorRights.for_channels:1 -#: of -msgid "" -"Pass :code:`True` to change the default administrator rights of the bot " -"in channels. Otherwise, the default administrator rights of the bot for " -"groups and supergroups will be changed." -msgstr "" - -#: ../../api/methods/set_my_default_administrator_rights.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/set_my_default_administrator_rights.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/set_my_default_administrator_rights.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/set_my_default_administrator_rights.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/set_my_default_administrator_rights.rst:29 -msgid "" -":code:`from aiogram.methods.set_my_default_administrator_rights import " -"SetMyDefaultAdministratorRights`" -msgstr "" - -#: ../../api/methods/set_my_default_administrator_rights.rst:30 -msgid "alias: :code:`from aiogram.methods import SetMyDefaultAdministratorRights`" -msgstr "" - -#: ../../api/methods/set_my_default_administrator_rights.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/set_my_default_administrator_rights.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#~ msgid "" -#~ "Use this method to change the " -#~ "default administrator rights requested by " -#~ "the bot when it's added as an " -#~ "administrator to groups or channels. " -#~ "These rights will be suggested to " -#~ "users, but they are are free to" -#~ " modify the list before adding the" -#~ " bot. Returns :code:`True` on success." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/set_my_description.po b/docs/locale/en/LC_MESSAGES/api/methods/set_my_description.po deleted file mode 100644 index b266de07..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/set_my_description.po +++ /dev/null @@ -1,83 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2023, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2023. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/methods/set_my_description.rst:3 -msgid "setMyDescription" -msgstr "" - -#: ../../api/methods/set_my_description.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.set_my_description.SetMyDescription:1 of -msgid "" -"Use this method to change the bot's description, which is shown in the " -"chat with the bot if the chat is empty. Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.set_my_description.SetMyDescription:3 of -msgid "Source: https://core.telegram.org/bots/api#setmydescription" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_my_description.SetMyDescription.description:1 of -msgid "" -"New bot description; 0-512 characters. Pass an empty string to remove the" -" dedicated description for the given language." -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_my_description.SetMyDescription.language_code:1 of -msgid "" -"A two-letter ISO 639-1 language code. If empty, the description will be " -"applied to all users for whose language there is no dedicated " -"description." -msgstr "" - -#: ../../api/methods/set_my_description.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/set_my_description.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/set_my_description.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/set_my_description.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/set_my_description.rst:29 -msgid ":code:`from aiogram.methods.set_my_description import SetMyDescription`" -msgstr "" - -#: ../../api/methods/set_my_description.rst:30 -msgid "alias: :code:`from aiogram.methods import SetMyDescription`" -msgstr "" - -#: ../../api/methods/set_my_description.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/set_my_description.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/set_my_short_description.po b/docs/locale/en/LC_MESSAGES/api/methods/set_my_short_description.po deleted file mode 100644 index eb4e343b..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/set_my_short_description.po +++ /dev/null @@ -1,88 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2023, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2023. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/methods/set_my_short_description.rst:3 -msgid "setMyShortDescription" -msgstr "" - -#: ../../api/methods/set_my_short_description.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.set_my_short_description.SetMyShortDescription:1 of -msgid "" -"Use this method to change the bot's short description, which is shown on " -"the bot's profile page and is sent together with the link when users " -"share the bot. Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.set_my_short_description.SetMyShortDescription:3 of -msgid "Source: https://core.telegram.org/bots/api#setmyshortdescription" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_my_short_description.SetMyShortDescription.short_description:1 -#: of -msgid "" -"New short description for the bot; 0-120 characters. Pass an empty string" -" to remove the dedicated short description for the given language." -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_my_short_description.SetMyShortDescription.language_code:1 -#: of -msgid "" -"A two-letter ISO 639-1 language code. If empty, the short description " -"will be applied to all users for whose language there is no dedicated " -"short description." -msgstr "" - -#: ../../api/methods/set_my_short_description.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/set_my_short_description.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/set_my_short_description.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/set_my_short_description.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/set_my_short_description.rst:29 -msgid "" -":code:`from aiogram.methods.set_my_short_description import " -"SetMyShortDescription`" -msgstr "" - -#: ../../api/methods/set_my_short_description.rst:30 -msgid "alias: :code:`from aiogram.methods import SetMyShortDescription`" -msgstr "" - -#: ../../api/methods/set_my_short_description.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/set_my_short_description.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/set_passport_data_errors.po b/docs/locale/en/LC_MESSAGES/api/methods/set_passport_data_errors.po deleted file mode 100644 index 5fb2b563..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/set_passport_data_errors.po +++ /dev/null @@ -1,87 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/set_passport_data_errors.rst:3 -msgid "setPassportDataErrors" -msgstr "" - -#: ../../api/methods/set_passport_data_errors.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.set_passport_data_errors.SetPassportDataErrors:1 of -msgid "" -"Informs a user that some of the Telegram Passport elements they provided " -"contains errors. The user will not be able to re-submit their Passport to" -" you until the errors are fixed (the contents of the field for which you " -"returned the error must change). Returns :code:`True` on success. Use " -"this if the data submitted by the user doesn't satisfy the standards your" -" service requires for any reason. For example, if a birthday date seems " -"invalid, a submitted document is blurry, a scan shows evidence of " -"tampering, etc. Supply some details in the error message to make sure the" -" user knows how to correct the issues." -msgstr "" - -#: aiogram.methods.set_passport_data_errors.SetPassportDataErrors:4 of -msgid "Source: https://core.telegram.org/bots/api#setpassportdataerrors" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_passport_data_errors.SetPassportDataErrors.user_id:1 of -msgid "User identifier" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_passport_data_errors.SetPassportDataErrors.errors:1 of -msgid "A JSON-serialized array describing the errors" -msgstr "" - -#: ../../api/methods/set_passport_data_errors.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/set_passport_data_errors.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/set_passport_data_errors.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/set_passport_data_errors.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/set_passport_data_errors.rst:29 -msgid "" -":code:`from aiogram.methods.set_passport_data_errors import " -"SetPassportDataErrors`" -msgstr "" - -#: ../../api/methods/set_passport_data_errors.rst:30 -msgid "alias: :code:`from aiogram.methods import SetPassportDataErrors`" -msgstr "" - -#: ../../api/methods/set_passport_data_errors.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/set_passport_data_errors.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/set_sticker_emoji_list.po b/docs/locale/en/LC_MESSAGES/api/methods/set_sticker_emoji_list.po deleted file mode 100644 index ad3536b3..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/set_sticker_emoji_list.po +++ /dev/null @@ -1,81 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2023, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2023. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/methods/set_sticker_emoji_list.rst:3 -msgid "setStickerEmojiList" -msgstr "" - -#: ../../api/methods/set_sticker_emoji_list.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.set_sticker_emoji_list.SetStickerEmojiList:1 of -msgid "" -"Use this method to change the list of emoji assigned to a regular or " -"custom emoji sticker. The sticker must belong to a sticker set created by" -" the bot. Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.set_sticker_emoji_list.SetStickerEmojiList:3 of -msgid "Source: https://core.telegram.org/bots/api#setstickeremojilist" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_sticker_emoji_list.SetStickerEmojiList.sticker:1 of -msgid "File identifier of the sticker" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_sticker_emoji_list.SetStickerEmojiList.emoji_list:1 of -msgid "A JSON-serialized list of 1-20 emoji associated with the sticker" -msgstr "" - -#: ../../api/methods/set_sticker_emoji_list.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/set_sticker_emoji_list.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/set_sticker_emoji_list.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/set_sticker_emoji_list.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/set_sticker_emoji_list.rst:29 -msgid "" -":code:`from aiogram.methods.set_sticker_emoji_list import " -"SetStickerEmojiList`" -msgstr "" - -#: ../../api/methods/set_sticker_emoji_list.rst:30 -msgid "alias: :code:`from aiogram.methods import SetStickerEmojiList`" -msgstr "" - -#: ../../api/methods/set_sticker_emoji_list.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/set_sticker_emoji_list.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/set_sticker_keywords.po b/docs/locale/en/LC_MESSAGES/api/methods/set_sticker_keywords.po deleted file mode 100644 index 22dfb120..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/set_sticker_keywords.po +++ /dev/null @@ -1,83 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2023, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2023. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/methods/set_sticker_keywords.rst:3 -msgid "setStickerKeywords" -msgstr "" - -#: ../../api/methods/set_sticker_keywords.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.set_sticker_keywords.SetStickerKeywords:1 of -msgid "" -"Use this method to change search keywords assigned to a regular or custom" -" emoji sticker. The sticker must belong to a sticker set created by the " -"bot. Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.set_sticker_keywords.SetStickerKeywords:3 of -msgid "Source: https://core.telegram.org/bots/api#setstickerkeywords" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_sticker_keywords.SetStickerKeywords.sticker:1 of -msgid "File identifier of the sticker" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_sticker_keywords.SetStickerKeywords.keywords:1 of -msgid "" -"A JSON-serialized list of 0-20 search keywords for the sticker with total" -" length of up to 64 characters" -msgstr "" - -#: ../../api/methods/set_sticker_keywords.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/set_sticker_keywords.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/set_sticker_keywords.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/set_sticker_keywords.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/set_sticker_keywords.rst:29 -msgid "" -":code:`from aiogram.methods.set_sticker_keywords import " -"SetStickerKeywords`" -msgstr "" - -#: ../../api/methods/set_sticker_keywords.rst:30 -msgid "alias: :code:`from aiogram.methods import SetStickerKeywords`" -msgstr "" - -#: ../../api/methods/set_sticker_keywords.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/set_sticker_keywords.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/set_sticker_mask_position.po b/docs/locale/en/LC_MESSAGES/api/methods/set_sticker_mask_position.po deleted file mode 100644 index 8efc08ba..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/set_sticker_mask_position.po +++ /dev/null @@ -1,86 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2023, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2023. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/methods/set_sticker_mask_position.rst:3 -msgid "setStickerMaskPosition" -msgstr "" - -#: ../../api/methods/set_sticker_mask_position.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.set_sticker_mask_position.SetStickerMaskPosition:1 of -msgid "" -"Use this method to change the `mask position " -"`_ of a mask sticker. " -"The sticker must belong to a sticker set that was created by the bot. " -"Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.set_sticker_mask_position.SetStickerMaskPosition:3 of -msgid "Source: https://core.telegram.org/bots/api#setstickermaskposition" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_sticker_mask_position.SetStickerMaskPosition.sticker:1 -#: of -msgid "File identifier of the sticker" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_sticker_mask_position.SetStickerMaskPosition.mask_position:1 -#: of -msgid "" -"A JSON-serialized object with the position where the mask should be " -"placed on faces. Omit the parameter to remove the mask position." -msgstr "" - -#: ../../api/methods/set_sticker_mask_position.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/set_sticker_mask_position.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/set_sticker_mask_position.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/set_sticker_mask_position.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/set_sticker_mask_position.rst:29 -msgid "" -":code:`from aiogram.methods.set_sticker_mask_position import " -"SetStickerMaskPosition`" -msgstr "" - -#: ../../api/methods/set_sticker_mask_position.rst:30 -msgid "alias: :code:`from aiogram.methods import SetStickerMaskPosition`" -msgstr "" - -#: ../../api/methods/set_sticker_mask_position.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/set_sticker_mask_position.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/set_sticker_position_in_set.po b/docs/locale/en/LC_MESSAGES/api/methods/set_sticker_position_in_set.po deleted file mode 100644 index c7ef9e7e..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/set_sticker_position_in_set.po +++ /dev/null @@ -1,90 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/set_sticker_position_in_set.rst:3 -msgid "setStickerPositionInSet" -msgstr "" - -#: ../../api/methods/set_sticker_position_in_set.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.set_sticker_position_in_set.SetStickerPositionInSet:1 of -msgid "" -"Use this method to move a sticker in a set created by the bot to a " -"specific position. Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.set_sticker_position_in_set.SetStickerPositionInSet:3 of -msgid "Source: https://core.telegram.org/bots/api#setstickerpositioninset" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_sticker_position_in_set.SetStickerPositionInSet.sticker:1 -#: of -msgid "File identifier of the sticker" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_sticker_position_in_set.SetStickerPositionInSet.position:1 -#: of -msgid "New sticker position in the set, zero-based" -msgstr "" - -#: ../../api/methods/set_sticker_position_in_set.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/set_sticker_position_in_set.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/set_sticker_position_in_set.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/set_sticker_position_in_set.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/set_sticker_position_in_set.rst:29 -msgid "" -":code:`from aiogram.methods.set_sticker_position_in_set import " -"SetStickerPositionInSet`" -msgstr "" - -#: ../../api/methods/set_sticker_position_in_set.rst:30 -msgid "alias: :code:`from aiogram.methods import SetStickerPositionInSet`" -msgstr "" - -#: ../../api/methods/set_sticker_position_in_set.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/set_sticker_position_in_set.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/set_sticker_position_in_set.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/set_sticker_position_in_set.rst:50 -msgid ":meth:`aiogram.types.sticker.Sticker.set_position_in_set`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/set_sticker_set_thumb.po b/docs/locale/en/LC_MESSAGES/api/methods/set_sticker_set_thumb.po deleted file mode 100644 index 8e279db0..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/set_sticker_set_thumb.po +++ /dev/null @@ -1,114 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/methods/set_sticker_set_thumb.rst:3 -msgid "setStickerSetThumb" -msgstr "" - -#: ../../api/methods/set_sticker_set_thumb.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: ../../api/methods/set_sticker_set_thumb.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/set_sticker_set_thumb.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/set_sticker_set_thumb.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/set_sticker_set_thumb.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/set_sticker_set_thumb.rst:29 -msgid "" -":code:`from aiogram.methods.set_sticker_set_thumb import " -"SetStickerSetThumb`" -msgstr "" - -#: ../../api/methods/set_sticker_set_thumb.rst:30 -msgid "alias: :code:`from aiogram.methods import SetStickerSetThumb`" -msgstr "" - -#: ../../api/methods/set_sticker_set_thumb.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/set_sticker_set_thumb.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#~ msgid "" -#~ "Use this method to set the " -#~ "thumbnail of a sticker set. Animated " -#~ "thumbnails can be set for animated " -#~ "sticker sets only. Video thumbnails can" -#~ " be set only for video sticker " -#~ "sets only. Returns :code:`True` on " -#~ "success." -#~ msgstr "" - -#~ msgid "Source: https://core.telegram.org/bots/api#setstickersetthumb" -#~ msgstr "" - -#~ msgid "Sticker set name" -#~ msgstr "" - -#~ msgid "User identifier of the sticker set owner" -#~ msgstr "" - -#~ msgid "" -#~ "A **PNG** image with the thumbnail, " -#~ "must be up to 128 kilobytes in " -#~ "size and have width and height " -#~ "exactly 100px, or a **TGS** animation" -#~ " with the 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 sticker set " -#~ "thumbnails can't be uploaded via HTTP" -#~ " URL." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/set_sticker_set_thumbnail.po b/docs/locale/en/LC_MESSAGES/api/methods/set_sticker_set_thumbnail.po deleted file mode 100644 index c0d9b5ee..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/set_sticker_set_thumbnail.po +++ /dev/null @@ -1,108 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2023, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2023. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/methods/set_sticker_set_thumbnail.rst:3 -msgid "setStickerSetThumbnail" -msgstr "" - -#: ../../api/methods/set_sticker_set_thumbnail.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.set_sticker_set_thumbnail.SetStickerSetThumbnail:1 of -msgid "" -"Use this method to set the thumbnail of a regular or mask sticker set. " -"The format of the thumbnail file must match the format of the stickers in" -" the set. Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.set_sticker_set_thumbnail.SetStickerSetThumbnail:3 of -msgid "Source: https://core.telegram.org/bots/api#setstickersetthumbnail" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_sticker_set_thumbnail.SetStickerSetThumbnail.name:1 of -msgid "Sticker set name" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_sticker_set_thumbnail.SetStickerSetThumbnail.user_id:1 -#: of -msgid "User identifier of the sticker set owner" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_sticker_set_thumbnail.SetStickerSetThumbnail.thumbnail:1 -#: of -msgid "" -"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." -msgstr "" - -#: ../../api/methods/set_sticker_set_thumbnail.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/set_sticker_set_thumbnail.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/set_sticker_set_thumbnail.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/set_sticker_set_thumbnail.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/set_sticker_set_thumbnail.rst:29 -msgid "" -":code:`from aiogram.methods.set_sticker_set_thumbnail import " -"SetStickerSetThumbnail`" -msgstr "" - -#: ../../api/methods/set_sticker_set_thumbnail.rst:30 -msgid "alias: :code:`from aiogram.methods import SetStickerSetThumbnail`" -msgstr "" - -#: ../../api/methods/set_sticker_set_thumbnail.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/set_sticker_set_thumbnail.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/set_sticker_set_title.po b/docs/locale/en/LC_MESSAGES/api/methods/set_sticker_set_title.po deleted file mode 100644 index fb27fdfc..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/set_sticker_set_title.po +++ /dev/null @@ -1,80 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2023, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2023. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/methods/set_sticker_set_title.rst:3 -msgid "setStickerSetTitle" -msgstr "" - -#: ../../api/methods/set_sticker_set_title.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.set_sticker_set_title.SetStickerSetTitle:1 of -msgid "" -"Use this method to set the title of a created sticker set. Returns " -":code:`True` on success." -msgstr "" - -#: aiogram.methods.set_sticker_set_title.SetStickerSetTitle:3 of -msgid "Source: https://core.telegram.org/bots/api#setstickersettitle" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_sticker_set_title.SetStickerSetTitle.name:1 of -msgid "Sticker set name" -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_sticker_set_title.SetStickerSetTitle.title:1 of -msgid "Sticker set title, 1-64 characters" -msgstr "" - -#: ../../api/methods/set_sticker_set_title.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/set_sticker_set_title.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/set_sticker_set_title.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/set_sticker_set_title.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/set_sticker_set_title.rst:29 -msgid "" -":code:`from aiogram.methods.set_sticker_set_title import " -"SetStickerSetTitle`" -msgstr "" - -#: ../../api/methods/set_sticker_set_title.rst:30 -msgid "alias: :code:`from aiogram.methods import SetStickerSetTitle`" -msgstr "" - -#: ../../api/methods/set_sticker_set_title.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/set_sticker_set_title.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/set_webhook.po b/docs/locale/en/LC_MESSAGES/api/methods/set_webhook.po deleted file mode 100644 index 10f3b913..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/set_webhook.po +++ /dev/null @@ -1,152 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/set_webhook.rst:3 -msgid "setWebhook" -msgstr "" - -#: ../../api/methods/set_webhook.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.set_webhook.SetWebhook:1 of -msgid "" -"Use this method to specify a URL and receive incoming updates via an " -"outgoing webhook. Whenever there is an update for the bot, we will send " -"an HTTPS POST request to the specified URL, containing a JSON-serialized " -":class:`aiogram.types.update.Update`. In case of an unsuccessful request," -" we will give up after a reasonable amount of attempts. Returns " -":code:`True` on success. If you'd like to make sure that the webhook was " -"set by you, you can specify secret data in the parameter *secret_token*. " -"If specified, the request will contain a header 'X-Telegram-Bot-Api-" -"Secret-Token' with the secret token as content." -msgstr "" - -#: aiogram.methods.set_webhook.SetWebhook:4 of -msgid "**Notes**" -msgstr "" - -#: aiogram.methods.set_webhook.SetWebhook:6 of -msgid "" -"**1.** You will not be able to receive updates using " -":class:`aiogram.methods.get_updates.GetUpdates` for as long as an " -"outgoing webhook is set up." -msgstr "" - -#: aiogram.methods.set_webhook.SetWebhook:8 of -msgid "" -"**2.** To use a self-signed certificate, you need to upload your `public " -"key certificate `_ using " -"*certificate* parameter. Please upload as InputFile, sending a String " -"will not work." -msgstr "" - -#: aiogram.methods.set_webhook.SetWebhook:10 of -msgid "" -"**3.** Ports currently supported *for webhooks*: **443, 80, 88, 8443**. " -"If you're having any trouble setting up webhooks, please check out this " -"`amazing guide to webhooks `_." -msgstr "" - -#: aiogram.methods.set_webhook.SetWebhook:13 of -msgid "Source: https://core.telegram.org/bots/api#setwebhook" -msgstr "" - -#: ../../docstring aiogram.methods.set_webhook.SetWebhook.url:1 of -msgid "" -"HTTPS URL to send updates to. Use an empty string to remove webhook " -"integration" -msgstr "" - -#: ../../docstring aiogram.methods.set_webhook.SetWebhook.certificate:1 of -msgid "" -"Upload your public key certificate so that the root certificate in use " -"can be checked. See our `self-signed guide " -"`_ for details." -msgstr "" - -#: ../../docstring aiogram.methods.set_webhook.SetWebhook.ip_address:1 of -msgid "" -"The fixed IP address which will be used to send webhook requests instead " -"of the IP address resolved through DNS" -msgstr "" - -#: ../../docstring aiogram.methods.set_webhook.SetWebhook.max_connections:1 of -msgid "" -"The maximum allowed number of simultaneous HTTPS connections to the " -"webhook for update delivery, 1-100. Defaults to *40*. Use lower values to" -" limit the load on your bot's server, and higher values to increase your " -"bot's throughput." -msgstr "" - -#: ../../docstring aiogram.methods.set_webhook.SetWebhook.allowed_updates:1 of -msgid "" -"A JSON-serialized list of the update types you want your bot to receive. " -"For example, specify ['message', 'edited_channel_post', 'callback_query']" -" to only receive updates of these types. See " -":class:`aiogram.types.update.Update` for a complete list of available " -"update types. Specify an empty list to receive all update types except " -"*chat_member* (default). If not specified, the previous setting will be " -"used." -msgstr "" - -#: ../../docstring -#: aiogram.methods.set_webhook.SetWebhook.drop_pending_updates:1 of -msgid "Pass :code:`True` to drop all pending updates" -msgstr "" - -#: ../../docstring aiogram.methods.set_webhook.SetWebhook.secret_token:1 of -msgid "" -"A secret token to be sent in a header 'X-Telegram-Bot-Api-Secret-Token' " -"in every webhook request, 1-256 characters. Only characters :code:`A-Z`, " -":code:`a-z`, :code:`0-9`, :code:`_` and :code:`-` are allowed. The header" -" is useful to ensure that the request comes from a webhook set by you." -msgstr "" - -#: ../../api/methods/set_webhook.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/set_webhook.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/set_webhook.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/set_webhook.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/set_webhook.rst:29 -msgid ":code:`from aiogram.methods.set_webhook import SetWebhook`" -msgstr "" - -#: ../../api/methods/set_webhook.rst:30 -msgid "alias: :code:`from aiogram.methods import SetWebhook`" -msgstr "" - -#: ../../api/methods/set_webhook.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/set_webhook.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/stop_message_live_location.po b/docs/locale/en/LC_MESSAGES/api/methods/stop_message_live_location.po deleted file mode 100644 index e15b616d..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/stop_message_live_location.po +++ /dev/null @@ -1,123 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/stop_message_live_location.rst:3 -msgid "stopMessageLiveLocation" -msgstr "" - -#: ../../api/methods/stop_message_live_location.rst:5 -msgid "Returns: :obj:`Union[Message, bool]`" -msgstr "" - -#: aiogram.methods.stop_message_live_location.StopMessageLiveLocation:1 of -msgid "" -"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." -msgstr "" - -#: aiogram.methods.stop_message_live_location.StopMessageLiveLocation:3 of -msgid "Source: https://core.telegram.org/bots/api#stopmessagelivelocation" -msgstr "" - -#: ../../docstring -#: aiogram.methods.stop_message_live_location.StopMessageLiveLocation.chat_id:1 -#: of -msgid "" -"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`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.stop_message_live_location.StopMessageLiveLocation.message_id:1 -#: of -msgid "" -"Required if *inline_message_id* is not specified. Identifier of the " -"message with live location to stop" -msgstr "" - -#: ../../docstring -#: aiogram.methods.stop_message_live_location.StopMessageLiveLocation.inline_message_id:1 -#: of -msgid "" -"Required if *chat_id* and *message_id* are not specified. Identifier of " -"the inline message" -msgstr "" - -#: ../../docstring -#: aiogram.methods.stop_message_live_location.StopMessageLiveLocation.reply_markup:1 -#: of -msgid "" -"A JSON-serialized object for a new `inline keyboard " -"`_." -msgstr "" - -#: ../../api/methods/stop_message_live_location.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/stop_message_live_location.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/stop_message_live_location.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/stop_message_live_location.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/stop_message_live_location.rst:29 -msgid "" -":code:`from aiogram.methods.stop_message_live_location import " -"StopMessageLiveLocation`" -msgstr "" - -#: ../../api/methods/stop_message_live_location.rst:30 -msgid "alias: :code:`from aiogram.methods import StopMessageLiveLocation`" -msgstr "" - -#: ../../api/methods/stop_message_live_location.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/stop_message_live_location.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/stop_message_live_location.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/stop_message_live_location.rst:50 -msgid ":meth:`aiogram.types.message.Message.stop_live_location`" -msgstr "" - -#~ msgid "" -#~ "A JSON-serialized object for a new" -#~ " `inline keyboard `_." -#~ msgstr "" - -#~ msgid "As message method" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/stop_poll.po b/docs/locale/en/LC_MESSAGES/api/methods/stop_poll.po deleted file mode 100644 index 269a1e06..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/stop_poll.po +++ /dev/null @@ -1,91 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/stop_poll.rst:3 -msgid "stopPoll" -msgstr "" - -#: ../../api/methods/stop_poll.rst:5 -msgid "Returns: :obj:`Poll`" -msgstr "" - -#: aiogram.methods.stop_poll.StopPoll:1 of -msgid "" -"Use this method to stop a poll which was sent by the bot. On success, the" -" stopped :class:`aiogram.types.poll.Poll` is returned." -msgstr "" - -#: aiogram.methods.stop_poll.StopPoll:3 of -msgid "Source: https://core.telegram.org/bots/api#stoppoll" -msgstr "" - -#: ../../docstring aiogram.methods.stop_poll.StopPoll.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.stop_poll.StopPoll.message_id:1 of -msgid "Identifier of the original message with the poll" -msgstr "" - -#: ../../docstring aiogram.methods.stop_poll.StopPoll.reply_markup:1 of -msgid "" -"A JSON-serialized object for a new message `inline keyboard " -"`_." -msgstr "" - -#: ../../api/methods/stop_poll.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/stop_poll.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/stop_poll.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/stop_poll.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/stop_poll.rst:29 -msgid ":code:`from aiogram.methods.stop_poll import StopPoll`" -msgstr "" - -#: ../../api/methods/stop_poll.rst:30 -msgid "alias: :code:`from aiogram.methods import StopPoll`" -msgstr "" - -#: ../../api/methods/stop_poll.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/stop_poll.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#~ msgid "" -#~ "A JSON-serialized object for a new" -#~ " message `inline keyboard " -#~ "`_." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/unban_chat_member.po b/docs/locale/en/LC_MESSAGES/api/methods/unban_chat_member.po deleted file mode 100644 index 1485077b..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/unban_chat_member.po +++ /dev/null @@ -1,99 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/unban_chat_member.rst:3 -msgid "unbanChatMember" -msgstr "" - -#: ../../api/methods/unban_chat_member.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.unban_chat_member.UnbanChatMember:1 of -msgid "" -"Use this method to unban a previously banned user in a supergroup or " -"channel. The user will **not** return to the group or channel " -"automatically, but will be able to join via link, etc. The bot must be an" -" administrator for this to work. By default, this method guarantees that " -"after the call the user is not a member of the chat, but will be able to " -"join it. So if the user is a member of the chat they will also be " -"**removed** from the chat. If you don't want this, use the parameter " -"*only_if_banned*. Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.unban_chat_member.UnbanChatMember:3 of -msgid "Source: https://core.telegram.org/bots/api#unbanchatmember" -msgstr "" - -#: ../../docstring aiogram.methods.unban_chat_member.UnbanChatMember.chat_id:1 -#: of -msgid "" -"Unique identifier for the target group or username of the target " -"supergroup or channel (in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring aiogram.methods.unban_chat_member.UnbanChatMember.user_id:1 -#: of -msgid "Unique identifier of the target user" -msgstr "" - -#: ../../docstring -#: aiogram.methods.unban_chat_member.UnbanChatMember.only_if_banned:1 of -msgid "Do nothing if the user is not banned" -msgstr "" - -#: ../../api/methods/unban_chat_member.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/unban_chat_member.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/unban_chat_member.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/unban_chat_member.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/unban_chat_member.rst:29 -msgid ":code:`from aiogram.methods.unban_chat_member import UnbanChatMember`" -msgstr "" - -#: ../../api/methods/unban_chat_member.rst:30 -msgid "alias: :code:`from aiogram.methods import UnbanChatMember`" -msgstr "" - -#: ../../api/methods/unban_chat_member.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/unban_chat_member.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/unban_chat_member.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/unban_chat_member.rst:50 -msgid ":meth:`aiogram.types.chat.Chat.unban`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/unban_chat_sender_chat.po b/docs/locale/en/LC_MESSAGES/api/methods/unban_chat_sender_chat.po deleted file mode 100644 index 093786e8..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/unban_chat_sender_chat.po +++ /dev/null @@ -1,93 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/unban_chat_sender_chat.rst:3 -msgid "unbanChatSenderChat" -msgstr "" - -#: ../../api/methods/unban_chat_sender_chat.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.unban_chat_sender_chat.UnbanChatSenderChat:1 of -msgid "" -"Use this method to unban a previously banned channel chat in a supergroup" -" or channel. The bot must be an administrator for this to work and must " -"have the appropriate administrator rights. Returns :code:`True` on " -"success." -msgstr "" - -#: aiogram.methods.unban_chat_sender_chat.UnbanChatSenderChat:3 of -msgid "Source: https://core.telegram.org/bots/api#unbanchatsenderchat" -msgstr "" - -#: ../../docstring -#: aiogram.methods.unban_chat_sender_chat.UnbanChatSenderChat.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.unban_chat_sender_chat.UnbanChatSenderChat.sender_chat_id:1 -#: of -msgid "Unique identifier of the target sender chat" -msgstr "" - -#: ../../api/methods/unban_chat_sender_chat.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/unban_chat_sender_chat.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/unban_chat_sender_chat.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/unban_chat_sender_chat.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/unban_chat_sender_chat.rst:29 -msgid "" -":code:`from aiogram.methods.unban_chat_sender_chat import " -"UnbanChatSenderChat`" -msgstr "" - -#: ../../api/methods/unban_chat_sender_chat.rst:30 -msgid "alias: :code:`from aiogram.methods import UnbanChatSenderChat`" -msgstr "" - -#: ../../api/methods/unban_chat_sender_chat.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/unban_chat_sender_chat.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/unban_chat_sender_chat.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/unban_chat_sender_chat.rst:50 -msgid ":meth:`aiogram.types.chat.Chat.unban_sender_chat`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/unhide_general_forum_topic.po b/docs/locale/en/LC_MESSAGES/api/methods/unhide_general_forum_topic.po deleted file mode 100644 index 3432fdfb..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/unhide_general_forum_topic.po +++ /dev/null @@ -1,80 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/unhide_general_forum_topic.rst:3 -msgid "unhideGeneralForumTopic" -msgstr "" - -#: ../../api/methods/unhide_general_forum_topic.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.unhide_general_forum_topic.UnhideGeneralForumTopic:1 of -msgid "" -"Use this method to unhide 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." -msgstr "" - -#: aiogram.methods.unhide_general_forum_topic.UnhideGeneralForumTopic:3 of -msgid "Source: https://core.telegram.org/bots/api#unhidegeneralforumtopic" -msgstr "" - -#: ../../docstring -#: aiogram.methods.unhide_general_forum_topic.UnhideGeneralForumTopic.chat_id:1 -#: of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup (in the format :code:`@supergroupusername`)" -msgstr "" - -#: ../../api/methods/unhide_general_forum_topic.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/unhide_general_forum_topic.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/unhide_general_forum_topic.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/unhide_general_forum_topic.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/unhide_general_forum_topic.rst:29 -msgid "" -":code:`from aiogram.methods.unhide_general_forum_topic import " -"UnhideGeneralForumTopic`" -msgstr "" - -#: ../../api/methods/unhide_general_forum_topic.rst:30 -msgid "alias: :code:`from aiogram.methods import UnhideGeneralForumTopic`" -msgstr "" - -#: ../../api/methods/unhide_general_forum_topic.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/unhide_general_forum_topic.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/unpin_all_chat_messages.po b/docs/locale/en/LC_MESSAGES/api/methods/unpin_all_chat_messages.po deleted file mode 100644 index 879d0ae4..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/unpin_all_chat_messages.po +++ /dev/null @@ -1,88 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/unpin_all_chat_messages.rst:3 -msgid "unpinAllChatMessages" -msgstr "" - -#: ../../api/methods/unpin_all_chat_messages.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.unpin_all_chat_messages.UnpinAllChatMessages:1 of -msgid "" -"Use this method to clear 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." -msgstr "" - -#: aiogram.methods.unpin_all_chat_messages.UnpinAllChatMessages:3 of -msgid "Source: https://core.telegram.org/bots/api#unpinallchatmessages" -msgstr "" - -#: ../../docstring -#: aiogram.methods.unpin_all_chat_messages.UnpinAllChatMessages.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../api/methods/unpin_all_chat_messages.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/unpin_all_chat_messages.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/unpin_all_chat_messages.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/unpin_all_chat_messages.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/unpin_all_chat_messages.rst:29 -msgid "" -":code:`from aiogram.methods.unpin_all_chat_messages import " -"UnpinAllChatMessages`" -msgstr "" - -#: ../../api/methods/unpin_all_chat_messages.rst:30 -msgid "alias: :code:`from aiogram.methods import UnpinAllChatMessages`" -msgstr "" - -#: ../../api/methods/unpin_all_chat_messages.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/unpin_all_chat_messages.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/unpin_all_chat_messages.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/unpin_all_chat_messages.rst:50 -msgid ":meth:`aiogram.types.chat.Chat.unpin_all_messages`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/unpin_all_forum_topic_messages.po b/docs/locale/en/LC_MESSAGES/api/methods/unpin_all_forum_topic_messages.po deleted file mode 100644 index bbc5d5ac..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/unpin_all_forum_topic_messages.po +++ /dev/null @@ -1,88 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/unpin_all_forum_topic_messages.rst:3 -msgid "unpinAllForumTopicMessages" -msgstr "" - -#: ../../api/methods/unpin_all_forum_topic_messages.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.unpin_all_forum_topic_messages.UnpinAllForumTopicMessages:1 -#: of -msgid "" -"Use this method to clear the list of pinned messages in a forum topic. " -"The bot must be an administrator in the chat for this to work and must " -"have the *can_pin_messages* administrator right in the supergroup. " -"Returns :code:`True` on success." -msgstr "" - -#: aiogram.methods.unpin_all_forum_topic_messages.UnpinAllForumTopicMessages:3 -#: of -msgid "Source: https://core.telegram.org/bots/api#unpinallforumtopicmessages" -msgstr "" - -#: ../../docstring -#: aiogram.methods.unpin_all_forum_topic_messages.UnpinAllForumTopicMessages.chat_id:1 -#: of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup (in the format :code:`@supergroupusername`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.unpin_all_forum_topic_messages.UnpinAllForumTopicMessages.message_thread_id:1 -#: of -msgid "Unique identifier for the target message thread of the forum topic" -msgstr "" - -#: ../../api/methods/unpin_all_forum_topic_messages.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/unpin_all_forum_topic_messages.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/unpin_all_forum_topic_messages.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/unpin_all_forum_topic_messages.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/unpin_all_forum_topic_messages.rst:29 -msgid "" -":code:`from aiogram.methods.unpin_all_forum_topic_messages import " -"UnpinAllForumTopicMessages`" -msgstr "" - -#: ../../api/methods/unpin_all_forum_topic_messages.rst:30 -msgid "alias: :code:`from aiogram.methods import UnpinAllForumTopicMessages`" -msgstr "" - -#: ../../api/methods/unpin_all_forum_topic_messages.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/unpin_all_forum_topic_messages.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/unpin_chat_message.po b/docs/locale/en/LC_MESSAGES/api/methods/unpin_chat_message.po deleted file mode 100644 index e184084b..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/unpin_chat_message.po +++ /dev/null @@ -1,101 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/methods/unpin_chat_message.rst:3 -msgid "unpinChatMessage" -msgstr "" - -#: ../../api/methods/unpin_chat_message.rst:5 -msgid "Returns: :obj:`bool`" -msgstr "" - -#: aiogram.methods.unpin_chat_message.UnpinChatMessage:1 of -msgid "" -"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." -msgstr "" - -#: aiogram.methods.unpin_chat_message.UnpinChatMessage:3 of -msgid "Source: https://core.telegram.org/bots/api#unpinchatmessage" -msgstr "" - -#: ../../docstring -#: aiogram.methods.unpin_chat_message.UnpinChatMessage.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: ../../docstring -#: aiogram.methods.unpin_chat_message.UnpinChatMessage.message_id:1 of -msgid "" -"Identifier of a message to unpin. If not specified, the most recent " -"pinned message (by sending date) will be unpinned." -msgstr "" - -#: ../../api/methods/unpin_chat_message.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/unpin_chat_message.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/unpin_chat_message.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/unpin_chat_message.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/unpin_chat_message.rst:29 -msgid ":code:`from aiogram.methods.unpin_chat_message import UnpinChatMessage`" -msgstr "" - -#: ../../api/methods/unpin_chat_message.rst:30 -msgid "alias: :code:`from aiogram.methods import UnpinChatMessage`" -msgstr "" - -#: ../../api/methods/unpin_chat_message.rst:33 -msgid "With specific bot" -msgstr "" - -#: ../../api/methods/unpin_chat_message.rst:40 -msgid "As reply into Webhook in handler" -msgstr "" - -#: ../../api/methods/unpin_chat_message.rst:48 -msgid "As shortcut from received object" -msgstr "" - -#: ../../api/methods/unpin_chat_message.rst:50 -msgid ":meth:`aiogram.types.message.Message.unpin`" -msgstr "" - -#: ../../api/methods/unpin_chat_message.rst:51 -msgid ":meth:`aiogram.types.chat.Chat.unpin_message`" -msgstr "" - -#~ msgid "As message method" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/methods/upload_sticker_file.po b/docs/locale/en/LC_MESSAGES/api/methods/upload_sticker_file.po deleted file mode 100644 index 4e909bd1..00000000 --- a/docs/locale/en/LC_MESSAGES/api/methods/upload_sticker_file.po +++ /dev/null @@ -1,105 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/methods/upload_sticker_file.rst:3 -msgid "uploadStickerFile" -msgstr "" - -#: ../../api/methods/upload_sticker_file.rst:5 -msgid "Returns: :obj:`File`" -msgstr "" - -#: aiogram.methods.upload_sticker_file.UploadStickerFile:1 of -msgid "" -"Use this method to upload a file with a sticker for later use in the " -":class:`aiogram.methods.create_new_sticker_set.CreateNewStickerSet` and " -":class:`aiogram.methods.add_sticker_to_set.AddStickerToSet` methods (the " -"file can be used multiple times). Returns the uploaded " -":class:`aiogram.types.file.File` on success." -msgstr "" - -#: aiogram.methods.upload_sticker_file.UploadStickerFile:3 of -msgid "Source: https://core.telegram.org/bots/api#uploadstickerfile" -msgstr "" - -#: ../../docstring -#: aiogram.methods.upload_sticker_file.UploadStickerFile.user_id:1 of -msgid "User identifier of sticker file owner" -msgstr "" - -#: ../../docstring -#: aiogram.methods.upload_sticker_file.UploadStickerFile.sticker:1 of -msgid "" -"A file with the sticker in .WEBP, .PNG, .TGS, or .WEBM format. See " -"`https://core.telegram.org/stickers " -"`_`https://core.telegram.org/stickers" -" `_ for technical requirements. " -":ref:`More information on Sending Files » `" -msgstr "" - -#: ../../docstring -#: aiogram.methods.upload_sticker_file.UploadStickerFile.sticker_format:1 of -msgid "Format of the sticker, must be one of 'static', 'animated', 'video'" -msgstr "" - -#: ../../api/methods/upload_sticker_file.rst:14 -msgid "Usage" -msgstr "" - -#: ../../api/methods/upload_sticker_file.rst:17 -msgid "As bot method" -msgstr "" - -#: ../../api/methods/upload_sticker_file.rst:25 -msgid "Method as object" -msgstr "" - -#: ../../api/methods/upload_sticker_file.rst:27 -msgid "Imports:" -msgstr "" - -#: ../../api/methods/upload_sticker_file.rst:29 -msgid ":code:`from aiogram.methods.upload_sticker_file import UploadStickerFile`" -msgstr "" - -#: ../../api/methods/upload_sticker_file.rst:30 -msgid "alias: :code:`from aiogram.methods import UploadStickerFile`" -msgstr "" - -#: ../../api/methods/upload_sticker_file.rst:33 -msgid "With specific bot" -msgstr "" - -#~ msgid "" -#~ "Use this method to upload a .PNG" -#~ " file with a sticker for later " -#~ "use in *createNewStickerSet* and " -#~ "*addStickerToSet* methods (can be used " -#~ "multiple times). Returns the uploaded " -#~ ":class:`aiogram.types.file.File` on success." -#~ msgstr "" - -#~ msgid "" -#~ "**PNG** image with the sticker, must " -#~ "be up to 512 kilobytes in size," -#~ " dimensions must not exceed 512px, " -#~ "and either width or height must be" -#~ " exactly 512px. :ref:`More information on" -#~ " Sending Files » `" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/session/aiohttp.po b/docs/locale/en/LC_MESSAGES/api/session/aiohttp.po deleted file mode 100644 index c0e0ef80..00000000 --- a/docs/locale/en/LC_MESSAGES/api/session/aiohttp.po +++ /dev/null @@ -1,97 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/session/aiohttp.rst:3 -msgid "aiohttp" -msgstr "" - -#: ../../api/session/aiohttp.rst:5 -msgid "" -"AiohttpSession represents a wrapper-class around `ClientSession` from " -"`aiohttp `_" -msgstr "" - -#: ../../api/session/aiohttp.rst:7 -msgid "Currently `AiohttpSession` is a default session used in `aiogram.Bot`" -msgstr "" - -#: ../../api/session/aiohttp.rst:12 -msgid "Usage example" -msgstr "" - -#: ../../api/session/aiohttp.rst:24 -msgid "Proxy requests in AiohttpSession" -msgstr "" - -#: ../../api/session/aiohttp.rst:26 -msgid "" -"In order to use AiohttpSession with proxy connector you have to install " -"`aiohttp-socks `_" -msgstr "" - -#: ../../api/session/aiohttp.rst:28 -msgid "Binding session to bot:" -msgstr "" - -#: ../../api/session/aiohttp.rst:41 -msgid "" -"Only following protocols are supported: http(tunneling), socks4(a), " -"socks5 as aiohttp_socks `documentation `_ claims." -msgstr "" - -#: ../../api/session/aiohttp.rst:46 -msgid "Authorization" -msgstr "" - -#: ../../api/session/aiohttp.rst:48 -msgid "" -"Proxy authorization credentials can be specified in proxy URL or come as " -"an instance of :obj:`aiohttp.BasicAuth` containing login and password." -msgstr "" - -#: ../../api/session/aiohttp.rst:51 -msgid "Consider examples:" -msgstr "" - -#: ../../api/session/aiohttp.rst:62 -msgid "or simply include your basic auth credential in URL" -msgstr "" - -#: ../../api/session/aiohttp.rst:71 -msgid "" -"Aiogram prefers `BasicAuth` over username and password in URL, so if " -"proxy URL contains login and password and `BasicAuth` object is passed at" -" the same time aiogram will use login and password from `BasicAuth` " -"instance." -msgstr "" - -#: ../../api/session/aiohttp.rst:77 -msgid "Proxy chains" -msgstr "" - -#: ../../api/session/aiohttp.rst:79 -msgid "" -"Since `aiohttp-socks `_ supports" -" proxy chains, you're able to use them in aiogram" -msgstr "" - -#: ../../api/session/aiohttp.rst:81 -msgid "Example of chain proxies:" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/session/base.po b/docs/locale/en/LC_MESSAGES/api/session/base.po deleted file mode 100644 index 3587676e..00000000 --- a/docs/locale/en/LC_MESSAGES/api/session/base.po +++ /dev/null @@ -1,74 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/session/base.rst:3 -msgid "Base" -msgstr "" - -#: ../../api/session/base.rst:5 -msgid "Abstract session for all client sessions" -msgstr "" - -#: aiogram.client.session.base.BaseSession.check_response:1 of -msgid "Check response status" -msgstr "" - -#: aiogram.client.session.base.BaseSession.clean_json:1 of -msgid "Clean data before send" -msgstr "" - -#: aiogram.client.session.base.BaseSession.close:1 of -msgid "Close client session" -msgstr "" - -#: aiogram.client.session.base.BaseSession.make_request:1 of -msgid "Make request to Telegram Bot API" -msgstr "" - -#: aiogram.client.session.base.BaseSession.make_request of -msgid "Parameters" -msgstr "" - -#: aiogram.client.session.base.BaseSession.make_request:3 of -msgid "Bot instance" -msgstr "" - -#: aiogram.client.session.base.BaseSession.make_request:4 of -msgid "Method instance" -msgstr "" - -#: aiogram.client.session.base.BaseSession.make_request:5 of -msgid "Request timeout" -msgstr "" - -#: aiogram.client.session.base.BaseSession.make_request of -msgid "Returns" -msgstr "" - -#: aiogram.client.session.base.BaseSession.make_request of -msgid "Raises" -msgstr "" - -#: aiogram.client.session.base.BaseSession.prepare_value:1 of -msgid "Prepare value before send" -msgstr "" - -#: aiogram.client.session.base.BaseSession.stream_content:1 of -msgid "Stream reader" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/session/custom_server.po b/docs/locale/en/LC_MESSAGES/api/session/custom_server.po deleted file mode 100644 index b5db8d60..00000000 --- a/docs/locale/en/LC_MESSAGES/api/session/custom_server.po +++ /dev/null @@ -1,96 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/session/custom_server.rst:2 -msgid "Use Custom API server" -msgstr "" - -#: aiogram.client.telegram.TelegramAPIServer:1 of -msgid "Base config for API Endpoints" -msgstr "" - -#: aiogram.client.telegram.TelegramAPIServer.api_url:1 of -msgid "Generate URL for API methods" -msgstr "" - -#: aiogram.client.telegram.TelegramAPIServer.api_url -#: aiogram.client.telegram.TelegramAPIServer.file_url -#: aiogram.client.telegram.TelegramAPIServer.from_base of -msgid "Parameters" -msgstr "" - -#: aiogram.client.telegram.TelegramAPIServer.api_url:3 -#: aiogram.client.telegram.TelegramAPIServer.file_url:3 of -msgid "Bot token" -msgstr "" - -#: aiogram.client.telegram.TelegramAPIServer.api_url:4 of -msgid "API method name (case insensitive)" -msgstr "" - -#: aiogram.client.telegram.TelegramAPIServer.api_url -#: aiogram.client.telegram.TelegramAPIServer.file_url -#: aiogram.client.telegram.TelegramAPIServer.from_base of -msgid "Returns" -msgstr "" - -#: aiogram.client.telegram.TelegramAPIServer.api_url:5 -#: aiogram.client.telegram.TelegramAPIServer.file_url:5 of -msgid "URL" -msgstr "" - -#: ../../docstring aiogram.client.telegram.TelegramAPIServer.base:1 -#: aiogram.client.telegram.TelegramAPIServer.from_base:3 of -msgid "Base URL" -msgstr "" - -#: ../../docstring aiogram.client.telegram.TelegramAPIServer.file:1 of -msgid "Files URL" -msgstr "" - -#: aiogram.client.telegram.TelegramAPIServer.file_url:1 of -msgid "Generate URL for downloading files" -msgstr "" - -#: aiogram.client.telegram.TelegramAPIServer.file_url:4 of -msgid "file path" -msgstr "" - -#: aiogram.client.telegram.TelegramAPIServer.from_base:1 of -msgid "Use this method to auto-generate TelegramAPIServer instance from base URL" -msgstr "" - -#: aiogram.client.telegram.TelegramAPIServer.from_base:4 of -msgid "instance of :class:`TelegramAPIServer`" -msgstr "" - -#: ../../docstring aiogram.client.telegram.TelegramAPIServer.is_local:1 of -msgid "" -"Mark this server is in `local mode " -"`_." -msgstr "" - -#: ../../docstring aiogram.client.telegram.TelegramAPIServer.wrap_local_file:1 -#: of -msgid "Callback to wrap files path in local mode" -msgstr "" - -#: ../../api/session/custom_server.rst:7 -msgid "For example, if you want to use self-hosted API server:" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/session/index.po b/docs/locale/en/LC_MESSAGES/api/session/index.po deleted file mode 100644 index c61e72d8..00000000 --- a/docs/locale/en/LC_MESSAGES/api/session/index.po +++ /dev/null @@ -1,26 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/session/index.rst:3 -msgid "Client session" -msgstr "" - -#: ../../api/session/index.rst:5 -msgid "Client sessions is used for interacting with API server." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/animation.po b/docs/locale/en/LC_MESSAGES/api/types/animation.po deleted file mode 100644 index df976078..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/animation.po +++ /dev/null @@ -1,74 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/animation.rst:3 -msgid "Animation" -msgstr "" - -#: aiogram.types.animation.Animation:1 of -msgid "" -"This object represents an animation file (GIF or H.264/MPEG-4 AVC video " -"without sound)." -msgstr "" - -#: aiogram.types.animation.Animation:3 of -msgid "Source: https://core.telegram.org/bots/api#animation" -msgstr "" - -#: ../../docstring aiogram.types.animation.Animation.file_id:1 of -msgid "Identifier for this file, which can be used to download or reuse the file" -msgstr "" - -#: ../../docstring aiogram.types.animation.Animation.file_unique_id:1 of -msgid "" -"Unique identifier for this file, which is supposed to be the same over " -"time and for different bots. Can't be used to download or reuse the file." -msgstr "" - -#: ../../docstring aiogram.types.animation.Animation.width:1 of -msgid "Video width as defined by sender" -msgstr "" - -#: ../../docstring aiogram.types.animation.Animation.height:1 of -msgid "Video height as defined by sender" -msgstr "" - -#: ../../docstring aiogram.types.animation.Animation.duration:1 of -msgid "Duration of the video in seconds as defined by sender" -msgstr "" - -#: ../../docstring aiogram.types.animation.Animation.thumb:1 of -msgid "*Optional*. Animation thumbnail as defined by sender" -msgstr "" - -#: ../../docstring aiogram.types.animation.Animation.file_name:1 of -msgid "*Optional*. Original animation filename as defined by sender" -msgstr "" - -#: ../../docstring aiogram.types.animation.Animation.mime_type:1 of -msgid "*Optional*. MIME type of the file as defined by sender" -msgstr "" - -#: ../../docstring aiogram.types.animation.Animation.file_size:1 of -msgid "" -"*Optional*. File size in bytes. It can be bigger than 2^31 and some " -"programming languages may have difficulty/silent defects in interpreting " -"it. But it has at most 52 significant bits, so a signed 64-bit integer or" -" double-precision float type are safe for storing this value." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/audio.po b/docs/locale/en/LC_MESSAGES/api/types/audio.po deleted file mode 100644 index 81579c4c..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/audio.po +++ /dev/null @@ -1,74 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/audio.rst:3 -msgid "Audio" -msgstr "" - -#: aiogram.types.audio.Audio:1 of -msgid "" -"This object represents an audio file to be treated as music by the " -"Telegram clients." -msgstr "" - -#: aiogram.types.audio.Audio:3 of -msgid "Source: https://core.telegram.org/bots/api#audio" -msgstr "" - -#: ../../docstring aiogram.types.audio.Audio.file_id:1 of -msgid "Identifier for this file, which can be used to download or reuse the file" -msgstr "" - -#: ../../docstring aiogram.types.audio.Audio.file_unique_id:1 of -msgid "" -"Unique identifier for this file, which is supposed to be the same over " -"time and for different bots. Can't be used to download or reuse the file." -msgstr "" - -#: ../../docstring aiogram.types.audio.Audio.duration:1 of -msgid "Duration of the audio in seconds as defined by sender" -msgstr "" - -#: ../../docstring aiogram.types.audio.Audio.performer:1 of -msgid "*Optional*. Performer of the audio as defined by sender or by audio tags" -msgstr "" - -#: ../../docstring aiogram.types.audio.Audio.title:1 of -msgid "*Optional*. Title of the audio as defined by sender or by audio tags" -msgstr "" - -#: ../../docstring aiogram.types.audio.Audio.file_name:1 of -msgid "*Optional*. Original filename as defined by sender" -msgstr "" - -#: ../../docstring aiogram.types.audio.Audio.mime_type:1 of -msgid "*Optional*. MIME type of the file as defined by sender" -msgstr "" - -#: ../../docstring aiogram.types.audio.Audio.file_size:1 of -msgid "" -"*Optional*. File size in bytes. It can be bigger than 2^31 and some " -"programming languages may have difficulty/silent defects in interpreting " -"it. But it has at most 52 significant bits, so a signed 64-bit integer or" -" double-precision float type are safe for storing this value." -msgstr "" - -#: ../../docstring aiogram.types.audio.Audio.thumb:1 of -msgid "*Optional*. Thumbnail of the album cover to which the music file belongs" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/bot_command.po b/docs/locale/en/LC_MESSAGES/api/types/bot_command.po deleted file mode 100644 index 8a4ec997..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/bot_command.po +++ /dev/null @@ -1,40 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/bot_command.rst:3 -msgid "BotCommand" -msgstr "" - -#: aiogram.types.bot_command.BotCommand:1 of -msgid "This object represents a bot command." -msgstr "" - -#: aiogram.types.bot_command.BotCommand:3 of -msgid "Source: https://core.telegram.org/bots/api#botcommand" -msgstr "" - -#: ../../docstring aiogram.types.bot_command.BotCommand.command:1 of -msgid "" -"Text of the command; 1-32 characters. Can contain only lowercase English " -"letters, digits and underscores." -msgstr "" - -#: ../../docstring aiogram.types.bot_command.BotCommand.description:1 of -msgid "Description of the command; 1-256 characters." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope.po b/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope.po deleted file mode 100644 index ae5cc0bc..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope.po +++ /dev/null @@ -1,60 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/bot_command_scope.rst:3 -msgid "BotCommandScope" -msgstr "" - -#: aiogram.types.bot_command_scope.BotCommandScope:1 of -msgid "" -"This object represents the scope to which bot commands are applied. " -"Currently, the following 7 scopes are supported:" -msgstr "" - -#: aiogram.types.bot_command_scope.BotCommandScope:3 of -msgid ":class:`aiogram.types.bot_command_scope_default.BotCommandScopeDefault`" -msgstr "" - -#: aiogram.types.bot_command_scope.BotCommandScope:4 of -msgid ":class:`aiogram.types.bot_command_scope_all_private_chats.BotCommandScopeAllPrivateChats`" -msgstr "" - -#: aiogram.types.bot_command_scope.BotCommandScope:5 of -msgid ":class:`aiogram.types.bot_command_scope_all_group_chats.BotCommandScopeAllGroupChats`" -msgstr "" - -#: aiogram.types.bot_command_scope.BotCommandScope:6 of -msgid ":class:`aiogram.types.bot_command_scope_all_chat_administrators.BotCommandScopeAllChatAdministrators`" -msgstr "" - -#: aiogram.types.bot_command_scope.BotCommandScope:7 of -msgid ":class:`aiogram.types.bot_command_scope_chat.BotCommandScopeChat`" -msgstr "" - -#: aiogram.types.bot_command_scope.BotCommandScope:8 of -msgid ":class:`aiogram.types.bot_command_scope_chat_administrators.BotCommandScopeChatAdministrators`" -msgstr "" - -#: aiogram.types.bot_command_scope.BotCommandScope:9 of -msgid ":class:`aiogram.types.bot_command_scope_chat_member.BotCommandScopeChatMember`" -msgstr "" - -#: aiogram.types.bot_command_scope.BotCommandScope:11 of -msgid "Source: https://core.telegram.org/bots/api#botcommandscope" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope_all_chat_administrators.po b/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope_all_chat_administrators.po deleted file mode 100644 index 35e5dc6c..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope_all_chat_administrators.po +++ /dev/null @@ -1,43 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/bot_command_scope_all_chat_administrators.rst:3 -msgid "BotCommandScopeAllChatAdministrators" -msgstr "" - -#: aiogram.types.bot_command_scope_all_chat_administrators.BotCommandScopeAllChatAdministrators:1 -#: of -msgid "" -"Represents the `scope " -"`_ of bot commands, " -"covering all group and supergroup chat administrators." -msgstr "" - -#: aiogram.types.bot_command_scope_all_chat_administrators.BotCommandScopeAllChatAdministrators:3 -#: of -msgid "" -"Source: " -"https://core.telegram.org/bots/api#botcommandscopeallchatadministrators" -msgstr "" - -#: ../../docstring -#: aiogram.types.bot_command_scope_all_chat_administrators.BotCommandScopeAllChatAdministrators.type:1 -#: of -msgid "Scope type, must be *all_chat_administrators*" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope_all_group_chats.po b/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope_all_group_chats.po deleted file mode 100644 index 550a1103..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope_all_group_chats.po +++ /dev/null @@ -1,41 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/bot_command_scope_all_group_chats.rst:3 -msgid "BotCommandScopeAllGroupChats" -msgstr "" - -#: aiogram.types.bot_command_scope_all_group_chats.BotCommandScopeAllGroupChats:1 -#: of -msgid "" -"Represents the `scope " -"`_ of bot commands, " -"covering all group and supergroup chats." -msgstr "" - -#: aiogram.types.bot_command_scope_all_group_chats.BotCommandScopeAllGroupChats:3 -#: of -msgid "Source: https://core.telegram.org/bots/api#botcommandscopeallgroupchats" -msgstr "" - -#: ../../docstring -#: aiogram.types.bot_command_scope_all_group_chats.BotCommandScopeAllGroupChats.type:1 -#: of -msgid "Scope type, must be *all_group_chats*" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope_all_private_chats.po b/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope_all_private_chats.po deleted file mode 100644 index 0b2610c3..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope_all_private_chats.po +++ /dev/null @@ -1,41 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/bot_command_scope_all_private_chats.rst:3 -msgid "BotCommandScopeAllPrivateChats" -msgstr "" - -#: aiogram.types.bot_command_scope_all_private_chats.BotCommandScopeAllPrivateChats:1 -#: of -msgid "" -"Represents the `scope " -"`_ of bot commands, " -"covering all private chats." -msgstr "" - -#: aiogram.types.bot_command_scope_all_private_chats.BotCommandScopeAllPrivateChats:3 -#: of -msgid "Source: https://core.telegram.org/bots/api#botcommandscopeallprivatechats" -msgstr "" - -#: ../../docstring -#: aiogram.types.bot_command_scope_all_private_chats.BotCommandScopeAllPrivateChats.type:1 -#: of -msgid "Scope type, must be *all_private_chats*" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope_chat.po b/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope_chat.po deleted file mode 100644 index 2114f522..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope_chat.po +++ /dev/null @@ -1,45 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/bot_command_scope_chat.rst:3 -msgid "BotCommandScopeChat" -msgstr "" - -#: aiogram.types.bot_command_scope_chat.BotCommandScopeChat:1 of -msgid "" -"Represents the `scope " -"`_ of bot commands, " -"covering a specific chat." -msgstr "" - -#: aiogram.types.bot_command_scope_chat.BotCommandScopeChat:3 of -msgid "Source: https://core.telegram.org/bots/api#botcommandscopechat" -msgstr "" - -#: ../../docstring -#: aiogram.types.bot_command_scope_chat.BotCommandScopeChat.type:1 of -msgid "Scope type, must be *chat*" -msgstr "" - -#: ../../docstring -#: aiogram.types.bot_command_scope_chat.BotCommandScopeChat.chat_id:1 of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup (in the format :code:`@supergroupusername`)" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope_chat_administrators.po b/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope_chat_administrators.po deleted file mode 100644 index 92ab15bc..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope_chat_administrators.po +++ /dev/null @@ -1,51 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/bot_command_scope_chat_administrators.rst:3 -msgid "BotCommandScopeChatAdministrators" -msgstr "" - -#: aiogram.types.bot_command_scope_chat_administrators.BotCommandScopeChatAdministrators:1 -#: of -msgid "" -"Represents the `scope " -"`_ of bot commands, " -"covering all administrators of a specific group or supergroup chat." -msgstr "" - -#: aiogram.types.bot_command_scope_chat_administrators.BotCommandScopeChatAdministrators:3 -#: of -msgid "" -"Source: " -"https://core.telegram.org/bots/api#botcommandscopechatadministrators" -msgstr "" - -#: ../../docstring -#: aiogram.types.bot_command_scope_chat_administrators.BotCommandScopeChatAdministrators.type:1 -#: of -msgid "Scope type, must be *chat_administrators*" -msgstr "" - -#: ../../docstring -#: aiogram.types.bot_command_scope_chat_administrators.BotCommandScopeChatAdministrators.chat_id:1 -#: of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup (in the format :code:`@supergroupusername`)" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope_chat_member.po b/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope_chat_member.po deleted file mode 100644 index e09566eb..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope_chat_member.po +++ /dev/null @@ -1,53 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/bot_command_scope_chat_member.rst:3 -msgid "BotCommandScopeChatMember" -msgstr "" - -#: aiogram.types.bot_command_scope_chat_member.BotCommandScopeChatMember:1 of -msgid "" -"Represents the `scope " -"`_ of bot commands, " -"covering a specific member of a group or supergroup chat." -msgstr "" - -#: aiogram.types.bot_command_scope_chat_member.BotCommandScopeChatMember:3 of -msgid "Source: https://core.telegram.org/bots/api#botcommandscopechatmember" -msgstr "" - -#: ../../docstring -#: aiogram.types.bot_command_scope_chat_member.BotCommandScopeChatMember.type:1 -#: of -msgid "Scope type, must be *chat_member*" -msgstr "" - -#: ../../docstring -#: aiogram.types.bot_command_scope_chat_member.BotCommandScopeChatMember.chat_id:1 -#: of -msgid "" -"Unique identifier for the target chat or username of the target " -"supergroup (in the format :code:`@supergroupusername`)" -msgstr "" - -#: ../../docstring -#: aiogram.types.bot_command_scope_chat_member.BotCommandScopeChatMember.user_id:1 -#: of -msgid "Unique identifier of the target user" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope_default.po b/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope_default.po deleted file mode 100644 index d4f81fde..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/bot_command_scope_default.po +++ /dev/null @@ -1,40 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/bot_command_scope_default.rst:3 -msgid "BotCommandScopeDefault" -msgstr "" - -#: aiogram.types.bot_command_scope_default.BotCommandScopeDefault:1 of -msgid "" -"Represents the default `scope " -"`_ of bot commands. " -"Default commands are used if no commands with a `narrower scope " -"`_ are " -"specified for the user." -msgstr "" - -#: aiogram.types.bot_command_scope_default.BotCommandScopeDefault:3 of -msgid "Source: https://core.telegram.org/bots/api#botcommandscopedefault" -msgstr "" - -#: ../../docstring -#: aiogram.types.bot_command_scope_default.BotCommandScopeDefault.type:1 of -msgid "Scope type, must be *default*" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/bot_short_description.po b/docs/locale/en/LC_MESSAGES/api/types/bot_short_description.po deleted file mode 100644 index 8855dc52..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/bot_short_description.po +++ /dev/null @@ -1,36 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2023, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2023. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/types/bot_short_description.rst:3 -msgid "BotShortDescription" -msgstr "" - -#: aiogram.types.bot_short_description.BotShortDescription:1 of -msgid "This object represents the bot's short description." -msgstr "" - -#: aiogram.types.bot_short_description.BotShortDescription:3 of -msgid "Source: https://core.telegram.org/bots/api#botshortdescription" -msgstr "" - -#: ../../docstring -#: aiogram.types.bot_short_description.BotShortDescription.short_description:1 -#: of -msgid "The bot's short description" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/callback_game.po b/docs/locale/en/LC_MESSAGES/api/types/callback_game.po deleted file mode 100644 index f564ef56..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/callback_game.po +++ /dev/null @@ -1,32 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/callback_game.rst:3 -msgid "CallbackGame" -msgstr "" - -#: aiogram.types.callback_game.CallbackGame:1 of -msgid "" -"A placeholder, currently holds no information. Use `BotFather " -"`_ to set up your game." -msgstr "" - -#: aiogram.types.callback_game.CallbackGame:3 of -msgid "Source: https://core.telegram.org/bots/api#callbackgame" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/callback_query.po b/docs/locale/en/LC_MESSAGES/api/types/callback_query.po deleted file mode 100644 index cb74a993..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/callback_query.po +++ /dev/null @@ -1,191 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/callback_query.rst:3 -msgid "CallbackQuery" -msgstr "" - -#: aiogram.types.callback_query.CallbackQuery:1 of -msgid "" -"This object represents an incoming callback query from a callback button " -"in an `inline keyboard `_. If the button that originated the query was attached to a " -"message sent by the bot, the field *message* will be present. If the " -"button was attached to a message sent via the bot (in `inline mode " -"`_), the field " -"*inline_message_id* will be present. Exactly one of the fields *data* or " -"*game_short_name* will be present." -msgstr "" - -#: aiogram.types.callback_query.CallbackQuery:3 of -msgid "" -"**NOTE:** After the user presses a callback button, Telegram clients will" -" display a progress bar until you call " -":class:`aiogram.methods.answer_callback_query.AnswerCallbackQuery`. It " -"is, therefore, necessary to react by calling " -":class:`aiogram.methods.answer_callback_query.AnswerCallbackQuery` even " -"if no notification to the user is needed (e.g., without specifying any of" -" the optional parameters)." -msgstr "" - -#: aiogram.types.callback_query.CallbackQuery:5 of -msgid "Source: https://core.telegram.org/bots/api#callbackquery" -msgstr "" - -#: ../../docstring aiogram.types.callback_query.CallbackQuery.id:1 of -msgid "Unique identifier for this query" -msgstr "" - -#: ../../docstring aiogram.types.callback_query.CallbackQuery.from_user:1 of -msgid "Sender" -msgstr "" - -#: ../../docstring aiogram.types.callback_query.CallbackQuery.chat_instance:1 -#: of -msgid "" -"Global identifier, uniquely corresponding to the chat to which the " -"message with the callback button was sent. Useful for high scores in " -":class:`aiogram.methods.games.Games`." -msgstr "" - -#: ../../docstring aiogram.types.callback_query.CallbackQuery.message:1 of -msgid "" -"*Optional*. Message with the callback button that originated the query. " -"Note that message content and message date will not be available if the " -"message is too old" -msgstr "" - -#: ../../docstring -#: aiogram.types.callback_query.CallbackQuery.inline_message_id:1 of -msgid "" -"*Optional*. Identifier of the message sent via the bot in inline mode, " -"that originated the query." -msgstr "" - -#: ../../docstring aiogram.types.callback_query.CallbackQuery.data:1 of -msgid "" -"*Optional*. Data associated with the callback button. Be aware that the " -"message originated the query can contain no callback buttons with this " -"data." -msgstr "" - -#: ../../docstring aiogram.types.callback_query.CallbackQuery.game_short_name:1 -#: of -msgid "" -"*Optional*. Short name of a `Game " -"`_ to be returned, serves as " -"the unique identifier for the game" -msgstr "" - -#: aiogram.types.callback_query.CallbackQuery.answer:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.answer_callback_query.AnswerCallbackQuery` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.callback_query.CallbackQuery.answer:4 of -msgid ":code:`callback_query_id`" -msgstr "" - -#: aiogram.types.callback_query.CallbackQuery.answer:6 of -msgid "" -"Use this method to send answers to callback queries sent from `inline " -"keyboards `_. " -"The answer will be displayed to the user as a notification at the top of " -"the chat screen or as an alert. On success, :code:`True` is returned." -msgstr "" - -#: aiogram.types.callback_query.CallbackQuery.answer:8 of -msgid "" -"Alternatively, the user can be redirected to the specified Game URL. For " -"this option to work, you must first create a game for your bot via " -"`@BotFather `_ and accept the terms. Otherwise, " -"you may use links like :code:`t.me/your_bot?start=XXXX` that open your " -"bot with a parameter." -msgstr "" - -#: aiogram.types.callback_query.CallbackQuery.answer:10 of -msgid "Source: https://core.telegram.org/bots/api#answercallbackquery" -msgstr "" - -#: aiogram.types.callback_query.CallbackQuery.answer of -msgid "Parameters" -msgstr "" - -#: aiogram.types.callback_query.CallbackQuery.answer:12 of -msgid "" -"Text of the notification. If not specified, nothing will be shown to the " -"user, 0-200 characters" -msgstr "" - -#: aiogram.types.callback_query.CallbackQuery.answer:13 of -msgid "" -"If :code:`True`, an alert will be shown by the client instead of a " -"notification at the top of the chat screen. Defaults to *false*." -msgstr "" - -#: aiogram.types.callback_query.CallbackQuery.answer:14 of -msgid "" -"URL that will be opened by the user's client. If you have created a " -":class:`aiogram.types.game.Game` and accepted the conditions via " -"`@BotFather `_, specify the URL that opens your " -"game - note that this will only work if the query comes from a " -"`https://core.telegram.org/bots/api#inlinekeyboardbutton " -"`_ " -"*callback_game* button." -msgstr "" - -#: aiogram.types.callback_query.CallbackQuery.answer:15 of -msgid "" -"The maximum amount of time in seconds that the result of the callback " -"query may be cached client-side. Telegram apps will support caching " -"starting in version 3.14. Defaults to 0." -msgstr "" - -#: aiogram.types.callback_query.CallbackQuery.answer of -msgid "Returns" -msgstr "" - -#: aiogram.types.callback_query.CallbackQuery.answer:16 of -msgid "" -"instance of method " -":class:`aiogram.methods.answer_callback_query.AnswerCallbackQuery`" -msgstr "" - -#~ msgid "" -#~ "This object represents an incoming " -#~ "callback query from a callback button" -#~ " in an `inline keyboard " -#~ "`_. If the " -#~ "button that originated the query was " -#~ "attached to a message sent by the" -#~ " bot, the field *message* will be " -#~ "present. If the button was attached " -#~ "to a message sent via the bot " -#~ "(in `inline mode `_), the field *inline_message_id*" -#~ " will be present. Exactly one of " -#~ "the fields *data* or *game_short_name* " -#~ "will be present." -#~ msgstr "" - -#~ msgid "Answer to callback query" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/chat.po b/docs/locale/en/LC_MESSAGES/api/types/chat.po deleted file mode 100644 index 05363683..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/chat.po +++ /dev/null @@ -1,1290 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/types/chat.rst:3 -msgid "Chat" -msgstr "" - -#: aiogram.types.chat.Chat:1 of -msgid "This object represents a chat." -msgstr "" - -#: aiogram.types.chat.Chat:3 of -msgid "Source: https://core.telegram.org/bots/api#chat" -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.id:1 of -msgid "" -"Unique identifier for this chat. This number may have more than 32 " -"significant bits and some programming languages may have " -"difficulty/silent defects in interpreting it. But it has at most 52 " -"significant bits, so a signed 64-bit integer or double-precision float " -"type are safe for storing this identifier." -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.type:1 of -msgid "Type of chat, can be either 'private', 'group', 'supergroup' or 'channel'" -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.title:1 of -msgid "*Optional*. Title, for supergroups, channels and group chats" -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.username:1 of -msgid "" -"*Optional*. Username, for private chats, supergroups and channels if " -"available" -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.first_name:1 of -msgid "*Optional*. First name of the other party in a private chat" -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.last_name:1 of -msgid "*Optional*. Last name of the other party in a private chat" -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.is_forum:1 of -msgid "" -"*Optional*. :code:`True`, if the supergroup chat is a forum (has `topics " -"`_ enabled)" -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.photo:1 of -msgid "" -"*Optional*. Chat photo. Returned only in " -":class:`aiogram.methods.get_chat.GetChat`." -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.active_usernames:1 of -msgid "" -"*Optional*. If non-empty, the list of all `active chat usernames " -"`_; for private chats, supergroups and channels. " -"Returned only in :class:`aiogram.methods.get_chat.GetChat`." -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.emoji_status_custom_emoji_id:1 of -msgid "" -"*Optional*. Custom emoji identifier of emoji status of the other party in" -" a private chat. Returned only in " -":class:`aiogram.methods.get_chat.GetChat`." -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.bio:1 of -msgid "" -"*Optional*. Bio of the other party in a private chat. Returned only in " -":class:`aiogram.methods.get_chat.GetChat`." -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.has_private_forwards:1 of -msgid "" -"*Optional*. :code:`True`, if privacy settings of the other party in the " -"private chat allows to use :code:`tg://user?id=` links only in " -"chats with the user. Returned only in " -":class:`aiogram.methods.get_chat.GetChat`." -msgstr "" - -#: ../../docstring -#: aiogram.types.chat.Chat.has_restricted_voice_and_video_messages:1 of -msgid "" -"*Optional*. :code:`True`, if the privacy settings of the other party " -"restrict sending voice and video note messages in the private chat. " -"Returned only in :class:`aiogram.methods.get_chat.GetChat`." -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.join_to_send_messages:1 of -msgid "" -"*Optional*. :code:`True`, if users need to join the supergroup before " -"they can send messages. Returned only in " -":class:`aiogram.methods.get_chat.GetChat`." -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.join_by_request:1 of -msgid "" -"*Optional*. :code:`True`, if all users directly joining the supergroup " -"need to be approved by supergroup administrators. Returned only in " -":class:`aiogram.methods.get_chat.GetChat`." -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.description:1 of -msgid "" -"*Optional*. Description, for groups, supergroups and channel chats. " -"Returned only in :class:`aiogram.methods.get_chat.GetChat`." -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.invite_link:1 of -msgid "" -"*Optional*. Primary invite link, for groups, supergroups and channel " -"chats. Returned only in :class:`aiogram.methods.get_chat.GetChat`." -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.pinned_message:1 of -msgid "" -"*Optional*. The most recent pinned message (by sending date). Returned " -"only in :class:`aiogram.methods.get_chat.GetChat`." -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.permissions:1 of -msgid "" -"*Optional*. Default chat member permissions, for groups and supergroups. " -"Returned only in :class:`aiogram.methods.get_chat.GetChat`." -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.slow_mode_delay:1 of -msgid "" -"*Optional*. For supergroups, the minimum allowed delay between " -"consecutive messages sent by each unpriviledged user; in seconds. " -"Returned only in :class:`aiogram.methods.get_chat.GetChat`." -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.message_auto_delete_time:1 of -msgid "" -"*Optional*. The time after which all messages sent to the chat will be " -"automatically deleted; in seconds. Returned only in " -":class:`aiogram.methods.get_chat.GetChat`." -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.has_aggressive_anti_spam_enabled:1 -#: of -msgid "" -"*Optional*. :code:`True`, if aggressive anti-spam checks are enabled in " -"the supergroup. The field is only available to chat administrators. " -"Returned only in :class:`aiogram.methods.get_chat.GetChat`." -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.has_hidden_members:1 of -msgid "" -"*Optional*. :code:`True`, if non-administrators can only get the list of " -"bots and administrators in the chat. Returned only in " -":class:`aiogram.methods.get_chat.GetChat`." -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.has_protected_content:1 of -msgid "" -"*Optional*. :code:`True`, if messages from the chat can't be forwarded to" -" other chats. Returned only in :class:`aiogram.methods.get_chat.GetChat`." -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.sticker_set_name:1 of -msgid "" -"*Optional*. For supergroups, name of group sticker set. Returned only in " -":class:`aiogram.methods.get_chat.GetChat`." -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.can_set_sticker_set:1 of -msgid "" -"*Optional*. :code:`True`, if the bot can change the group sticker set. " -"Returned only in :class:`aiogram.methods.get_chat.GetChat`." -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.linked_chat_id:1 of -msgid "" -"*Optional*. Unique identifier for the linked chat, i.e. the discussion " -"group identifier for a channel and vice versa; for supergroups and " -"channel chats. This identifier may be greater than 32 bits and some " -"programming languages may have difficulty/silent defects in interpreting " -"it. But it is smaller than 52 bits, so a signed 64 bit integer or double-" -"precision float type are safe for storing this identifier. Returned only " -"in :class:`aiogram.methods.get_chat.GetChat`." -msgstr "" - -#: ../../docstring aiogram.types.chat.Chat.location:1 of -msgid "" -"*Optional*. For supergroups, the location to which the supergroup is " -"connected. Returned only in :class:`aiogram.methods.get_chat.GetChat`." -msgstr "" - -#: aiogram.types.chat.Chat.shifted_id:1 of -msgid "" -"Returns shifted chat ID (positive and without \"-100\" prefix). Mostly " -"used for private links like t.me/c/chat_id/message_id" -msgstr "" - -#: aiogram.types.chat.Chat.shifted_id:4 of -msgid "" -"Currently supergroup/channel IDs have 10-digit ID after \"-100\" prefix " -"removed. However, these IDs might become 11-digit in future. So, first we" -" remove \"-100\" prefix and count remaining number length. Then we " -"multiple -1 * 10 ^ (number_length + 2) Finally, self.id is substracted " -"from that number" -msgstr "" - -#: aiogram.types.chat.Chat.full_name:1 of -msgid "Get full name of the Chat." -msgstr "" - -#: aiogram.types.chat.Chat.full_name:3 of -msgid "" -"For private chat it is first_name + last_name. For other chat types it is" -" title." -msgstr "" - -#: aiogram.types.chat.Chat.ban_sender_chat:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.ban_chat_sender_chat.BanChatSenderChat` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.ban:4 aiogram.types.chat.Chat.ban_sender_chat:4 -#: aiogram.types.chat.Chat.create_invite_link:4 -#: aiogram.types.chat.Chat.delete_message:4 -#: aiogram.types.chat.Chat.delete_photo:4 -#: aiogram.types.chat.Chat.delete_sticker_set:4 aiogram.types.chat.Chat.do:4 -#: aiogram.types.chat.Chat.edit_invite_link:4 -#: aiogram.types.chat.Chat.export_invite_link:4 -#: aiogram.types.chat.Chat.get_administrators:4 -#: aiogram.types.chat.Chat.get_member:4 -#: aiogram.types.chat.Chat.get_member_count:4 aiogram.types.chat.Chat.leave:4 -#: aiogram.types.chat.Chat.pin_message:4 aiogram.types.chat.Chat.promote:4 -#: aiogram.types.chat.Chat.restrict:4 -#: aiogram.types.chat.Chat.revoke_invite_link:4 -#: aiogram.types.chat.Chat.set_administrator_custom_title:4 -#: aiogram.types.chat.Chat.set_description:4 -#: aiogram.types.chat.Chat.set_permissions:4 -#: aiogram.types.chat.Chat.set_photo:4 -#: aiogram.types.chat.Chat.set_sticker_set:4 -#: aiogram.types.chat.Chat.set_title:4 aiogram.types.chat.Chat.unban:4 -#: aiogram.types.chat.Chat.unban_sender_chat:4 -#: aiogram.types.chat.Chat.unpin_all_messages:4 -#: aiogram.types.chat.Chat.unpin_message:4 of -msgid ":code:`chat_id`" -msgstr "" - -#: aiogram.types.chat.Chat.ban_sender_chat:6 of -msgid "" -"Use this method to ban a channel chat in a supergroup or a channel. Until" -" the chat is `unbanned " -"`_, the owner of " -"the banned chat won't be able to send messages on behalf of **any of " -"their channels**. The bot must be an administrator in the supergroup or " -"channel for this to work and must have the appropriate administrator " -"rights. Returns :code:`True` on success." -msgstr "" - -#: aiogram.types.chat.Chat.ban_sender_chat:8 of -msgid "Source: https://core.telegram.org/bots/api#banchatsenderchat" -msgstr "" - -#: aiogram.types.chat.Chat.ban aiogram.types.chat.Chat.ban_sender_chat -#: aiogram.types.chat.Chat.create_invite_link -#: aiogram.types.chat.Chat.delete_message aiogram.types.chat.Chat.do -#: aiogram.types.chat.Chat.edit_invite_link aiogram.types.chat.Chat.get_member -#: aiogram.types.chat.Chat.pin_message aiogram.types.chat.Chat.promote -#: aiogram.types.chat.Chat.restrict aiogram.types.chat.Chat.revoke_invite_link -#: aiogram.types.chat.Chat.set_administrator_custom_title -#: aiogram.types.chat.Chat.set_description -#: aiogram.types.chat.Chat.set_permissions aiogram.types.chat.Chat.set_photo -#: aiogram.types.chat.Chat.set_sticker_set aiogram.types.chat.Chat.set_title -#: aiogram.types.chat.Chat.unban aiogram.types.chat.Chat.unban_sender_chat -#: aiogram.types.chat.Chat.unpin_message of -msgid "Parameters" -msgstr "" - -#: aiogram.types.chat.Chat.ban_sender_chat:10 -#: aiogram.types.chat.Chat.unban_sender_chat:10 of -msgid "Unique identifier of the target sender chat" -msgstr "" - -#: aiogram.types.chat.Chat.ban aiogram.types.chat.Chat.ban_sender_chat -#: aiogram.types.chat.Chat.create_invite_link -#: aiogram.types.chat.Chat.delete_message aiogram.types.chat.Chat.delete_photo -#: aiogram.types.chat.Chat.delete_sticker_set aiogram.types.chat.Chat.do -#: aiogram.types.chat.Chat.edit_invite_link -#: aiogram.types.chat.Chat.export_invite_link -#: aiogram.types.chat.Chat.get_administrators -#: aiogram.types.chat.Chat.get_member aiogram.types.chat.Chat.get_member_count -#: aiogram.types.chat.Chat.leave aiogram.types.chat.Chat.pin_message -#: aiogram.types.chat.Chat.promote aiogram.types.chat.Chat.restrict -#: aiogram.types.chat.Chat.revoke_invite_link -#: aiogram.types.chat.Chat.set_administrator_custom_title -#: aiogram.types.chat.Chat.set_description -#: aiogram.types.chat.Chat.set_permissions aiogram.types.chat.Chat.set_photo -#: aiogram.types.chat.Chat.set_sticker_set aiogram.types.chat.Chat.set_title -#: aiogram.types.chat.Chat.unban aiogram.types.chat.Chat.unban_sender_chat -#: aiogram.types.chat.Chat.unpin_all_messages -#: aiogram.types.chat.Chat.unpin_message of -msgid "Returns" -msgstr "" - -#: aiogram.types.chat.Chat.ban_sender_chat:11 of -msgid "" -"instance of method " -":class:`aiogram.methods.ban_chat_sender_chat.BanChatSenderChat`" -msgstr "" - -#: aiogram.types.chat.Chat.unban_sender_chat:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.unban_chat_sender_chat.UnbanChatSenderChat` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.unban_sender_chat:6 of -msgid "" -"Use this method to unban a previously banned channel chat in a supergroup" -" or channel. The bot must be an administrator for this to work and must " -"have the appropriate administrator rights. Returns :code:`True` on " -"success." -msgstr "" - -#: aiogram.types.chat.Chat.unban_sender_chat:8 of -msgid "Source: https://core.telegram.org/bots/api#unbanchatsenderchat" -msgstr "" - -#: aiogram.types.chat.Chat.unban_sender_chat:11 of -msgid "" -"instance of method " -":class:`aiogram.methods.unban_chat_sender_chat.UnbanChatSenderChat`" -msgstr "" - -#: aiogram.types.chat.Chat.get_administrators:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.get_chat_administrators.GetChatAdministrators` " -"will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.get_administrators:6 of -msgid "" -"Use this method to get a list of administrators in a chat, which aren't " -"bots. Returns an Array of :class:`aiogram.types.chat_member.ChatMember` " -"objects." -msgstr "" - -#: aiogram.types.chat.Chat.get_administrators:8 of -msgid "Source: https://core.telegram.org/bots/api#getchatadministrators" -msgstr "" - -#: aiogram.types.chat.Chat.get_administrators:10 of -msgid "" -"instance of method " -":class:`aiogram.methods.get_chat_administrators.GetChatAdministrators`" -msgstr "" - -#: aiogram.types.chat.Chat.delete_message:1 of -msgid "" -"Shortcut for method :class:`aiogram.methods.delete_message.DeleteMessage`" -" will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.delete_message:6 of -msgid "" -"Use this method to delete a message, including service messages, with the" -" following limitations:" -msgstr "" - -#: aiogram.types.chat.Chat.delete_message:8 of -msgid "A message can only be deleted if it was sent less than 48 hours ago." -msgstr "" - -#: aiogram.types.chat.Chat.delete_message:10 of -msgid "" -"Service messages about a supergroup, channel, or forum topic creation " -"can't be deleted." -msgstr "" - -#: aiogram.types.chat.Chat.delete_message:12 of -msgid "" -"A dice message in a private chat can only be deleted if it was sent more " -"than 24 hours ago." -msgstr "" - -#: aiogram.types.chat.Chat.delete_message:14 of -msgid "" -"Bots can delete outgoing messages in private chats, groups, and " -"supergroups." -msgstr "" - -#: aiogram.types.chat.Chat.delete_message:16 of -msgid "Bots can delete incoming messages in private chats." -msgstr "" - -#: aiogram.types.chat.Chat.delete_message:18 of -msgid "" -"Bots granted *can_post_messages* permissions can delete outgoing messages" -" in channels." -msgstr "" - -#: aiogram.types.chat.Chat.delete_message:20 of -msgid "" -"If the bot is an administrator of a group, it can delete any message " -"there." -msgstr "" - -#: aiogram.types.chat.Chat.delete_message:22 of -msgid "" -"If the bot has *can_delete_messages* permission in a supergroup or a " -"channel, it can delete any message there." -msgstr "" - -#: aiogram.types.chat.Chat.delete_message:24 of -msgid "Returns :code:`True` on success." -msgstr "" - -#: aiogram.types.chat.Chat.delete_message:26 of -msgid "Source: https://core.telegram.org/bots/api#deletemessage" -msgstr "" - -#: aiogram.types.chat.Chat.delete_message:28 of -msgid "Identifier of the message to delete" -msgstr "" - -#: aiogram.types.chat.Chat.delete_message:29 of -msgid "instance of method :class:`aiogram.methods.delete_message.DeleteMessage`" -msgstr "" - -#: aiogram.types.chat.Chat.revoke_invite_link:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.revoke_chat_invite_link.RevokeChatInviteLink` " -"will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.revoke_invite_link:6 of -msgid "" -"Use this method to revoke an invite link created by the bot. If the " -"primary link is revoked, a new link is automatically generated. The bot " -"must be an administrator in the chat for this to work and must have the " -"appropriate administrator rights. Returns the revoked invite link as " -":class:`aiogram.types.chat_invite_link.ChatInviteLink` object." -msgstr "" - -#: aiogram.types.chat.Chat.revoke_invite_link:8 of -msgid "Source: https://core.telegram.org/bots/api#revokechatinvitelink" -msgstr "" - -#: aiogram.types.chat.Chat.revoke_invite_link:10 of -msgid "The invite link to revoke" -msgstr "" - -#: aiogram.types.chat.Chat.revoke_invite_link:11 of -msgid "" -"instance of method " -":class:`aiogram.methods.revoke_chat_invite_link.RevokeChatInviteLink`" -msgstr "" - -#: aiogram.types.chat.Chat.edit_invite_link:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.edit_chat_invite_link.EditChatInviteLink` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.edit_invite_link:6 of -msgid "" -"Use this method to edit a non-primary invite link created by the bot. The" -" bot must be an administrator in the chat for this to work and must have " -"the appropriate administrator rights. Returns the edited invite link as a" -" :class:`aiogram.types.chat_invite_link.ChatInviteLink` object." -msgstr "" - -#: aiogram.types.chat.Chat.edit_invite_link:8 of -msgid "Source: https://core.telegram.org/bots/api#editchatinvitelink" -msgstr "" - -#: aiogram.types.chat.Chat.edit_invite_link:10 of -msgid "The invite link to edit" -msgstr "" - -#: aiogram.types.chat.Chat.create_invite_link:10 -#: aiogram.types.chat.Chat.edit_invite_link:11 of -msgid "Invite link name; 0-32 characters" -msgstr "" - -#: aiogram.types.chat.Chat.create_invite_link:11 -#: aiogram.types.chat.Chat.edit_invite_link:12 of -msgid "Point in time (Unix timestamp) when the link will expire" -msgstr "" - -#: aiogram.types.chat.Chat.create_invite_link:12 -#: aiogram.types.chat.Chat.edit_invite_link:13 of -msgid "" -"The maximum number of users that can be members of the chat " -"simultaneously after joining the chat via this invite link; 1-99999" -msgstr "" - -#: aiogram.types.chat.Chat.create_invite_link:13 -#: aiogram.types.chat.Chat.edit_invite_link:14 of -msgid "" -":code:`True`, if users joining the chat via the link need to be approved " -"by chat administrators. If :code:`True`, *member_limit* can't be " -"specified" -msgstr "" - -#: aiogram.types.chat.Chat.edit_invite_link:15 of -msgid "" -"instance of method " -":class:`aiogram.methods.edit_chat_invite_link.EditChatInviteLink`" -msgstr "" - -#: aiogram.types.chat.Chat.create_invite_link:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.create_chat_invite_link.CreateChatInviteLink` " -"will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.create_invite_link:6 of -msgid "" -"Use this method to create an additional invite link for a chat. The bot " -"must be an administrator in the chat for this to work and must have the " -"appropriate administrator rights. The link can be revoked using the " -"method " -":class:`aiogram.methods.revoke_chat_invite_link.RevokeChatInviteLink`. " -"Returns the new invite link as " -":class:`aiogram.types.chat_invite_link.ChatInviteLink` object." -msgstr "" - -#: aiogram.types.chat.Chat.create_invite_link:8 of -msgid "Source: https://core.telegram.org/bots/api#createchatinvitelink" -msgstr "" - -#: aiogram.types.chat.Chat.create_invite_link:14 of -msgid "" -"instance of method " -":class:`aiogram.methods.create_chat_invite_link.CreateChatInviteLink`" -msgstr "" - -#: aiogram.types.chat.Chat.export_invite_link:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.export_chat_invite_link.ExportChatInviteLink` " -"will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.export_invite_link:6 of -msgid "" -"Use this method to generate a new primary invite link for a chat; any " -"previously generated primary link is revoked. The bot must be an " -"administrator in the chat for this to work and must have the appropriate " -"administrator rights. Returns the new invite link as *String* on success." -msgstr "" - -#: aiogram.types.chat.Chat.export_invite_link:8 of -msgid "" -"Note: Each administrator in a chat generates their own invite links. Bots" -" can't use invite links generated by other administrators. If you want " -"your bot to work with invite links, it will need to generate its own link" -" using " -":class:`aiogram.methods.export_chat_invite_link.ExportChatInviteLink` or " -"by calling the :class:`aiogram.methods.get_chat.GetChat` method. If your " -"bot needs to generate a new primary invite link replacing its previous " -"one, use " -":class:`aiogram.methods.export_chat_invite_link.ExportChatInviteLink` " -"again." -msgstr "" - -#: aiogram.types.chat.Chat.export_invite_link:10 of -msgid "Source: https://core.telegram.org/bots/api#exportchatinvitelink" -msgstr "" - -#: aiogram.types.chat.Chat.export_invite_link:12 of -msgid "" -"instance of method " -":class:`aiogram.methods.export_chat_invite_link.ExportChatInviteLink`" -msgstr "" - -#: aiogram.types.chat.Chat.do:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.send_chat_action.SendChatAction` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.do:6 of -msgid "" -"Use this method when you need to tell the user that something is " -"happening on the bot's side. The status is set for 5 seconds or less " -"(when a message arrives from your bot, Telegram clients clear its typing " -"status). Returns :code:`True` on success." -msgstr "" - -#: aiogram.types.chat.Chat.do:8 of -msgid "" -"Example: The `ImageBot `_ needs some time to " -"process a request and upload the image. Instead of sending a text message" -" along the lines of 'Retrieving image, please wait…', the bot may use " -":class:`aiogram.methods.send_chat_action.SendChatAction` with *action* = " -"*upload_photo*. The user will see a 'sending photo' status for the bot." -msgstr "" - -#: aiogram.types.chat.Chat.do:10 of -msgid "" -"We only recommend using this method when a response from the bot will " -"take a **noticeable** amount of time to arrive." -msgstr "" - -#: aiogram.types.chat.Chat.do:12 of -msgid "Source: https://core.telegram.org/bots/api#sendchataction" -msgstr "" - -#: aiogram.types.chat.Chat.do:14 of -msgid "" -"Type of action to broadcast. Choose one, depending on what the user is " -"about to receive: *typing* for `text messages " -"`_, *upload_photo* for " -"`photos `_, *record_video* " -"or *upload_video* for `videos " -"`_, *record_voice* or " -"*upload_voice* for `voice notes " -"`_, *upload_document* for " -"`general files `_, " -"*choose_sticker* for `stickers " -"`_, *find_location* for " -"`location data `_, " -"*record_video_note* or *upload_video_note* for `video notes " -"`_." -msgstr "" - -#: aiogram.types.chat.Chat.do:15 of -msgid "Unique identifier for the target message thread; supergroups only" -msgstr "" - -#: aiogram.types.chat.Chat.do:16 of -msgid "" -"instance of method " -":class:`aiogram.methods.send_chat_action.SendChatAction`" -msgstr "" - -#: aiogram.types.chat.Chat.delete_sticker_set:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.delete_chat_sticker_set.DeleteChatStickerSet` " -"will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.delete_sticker_set:6 of -msgid "" -"Use this method to delete a group sticker set from a supergroup. The bot " -"must be an administrator in the chat for this to work and must have the " -"appropriate administrator rights. Use the field *can_set_sticker_set* " -"optionally returned in :class:`aiogram.methods.get_chat.GetChat` requests" -" to check if the bot can use this method. Returns :code:`True` on " -"success." -msgstr "" - -#: aiogram.types.chat.Chat.delete_sticker_set:8 of -msgid "Source: https://core.telegram.org/bots/api#deletechatstickerset" -msgstr "" - -#: aiogram.types.chat.Chat.delete_sticker_set:10 of -msgid "" -"instance of method " -":class:`aiogram.methods.delete_chat_sticker_set.DeleteChatStickerSet`" -msgstr "" - -#: aiogram.types.chat.Chat.set_sticker_set:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.set_chat_sticker_set.SetChatStickerSet` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.set_sticker_set:6 of -msgid "" -"Use this method to set a new group sticker set for a supergroup. The bot " -"must be an administrator in the chat for this to work and must have the " -"appropriate administrator rights. Use the field *can_set_sticker_set* " -"optionally returned in :class:`aiogram.methods.get_chat.GetChat` requests" -" to check if the bot can use this method. Returns :code:`True` on " -"success." -msgstr "" - -#: aiogram.types.chat.Chat.set_sticker_set:8 of -msgid "Source: https://core.telegram.org/bots/api#setchatstickerset" -msgstr "" - -#: aiogram.types.chat.Chat.set_sticker_set:10 of -msgid "Name of the sticker set to be set as the group sticker set" -msgstr "" - -#: aiogram.types.chat.Chat.set_sticker_set:11 of -msgid "" -"instance of method " -":class:`aiogram.methods.set_chat_sticker_set.SetChatStickerSet`" -msgstr "" - -#: aiogram.types.chat.Chat.get_member:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.get_chat_member.GetChatMember` will automatically" -" fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.get_member:6 of -msgid "" -"Use this method to get information about a member of a chat. The method " -"is only guaranteed to work for other users if the bot is an administrator" -" in the chat. Returns a :class:`aiogram.types.chat_member.ChatMember` " -"object on success." -msgstr "" - -#: aiogram.types.chat.Chat.get_member:8 of -msgid "Source: https://core.telegram.org/bots/api#getchatmember" -msgstr "" - -#: aiogram.types.chat.Chat.ban:10 aiogram.types.chat.Chat.get_member:10 -#: aiogram.types.chat.Chat.promote:10 aiogram.types.chat.Chat.restrict:10 -#: aiogram.types.chat.Chat.set_administrator_custom_title:10 -#: aiogram.types.chat.Chat.unban:10 of -msgid "Unique identifier of the target user" -msgstr "" - -#: aiogram.types.chat.Chat.get_member:11 of -msgid "instance of method :class:`aiogram.methods.get_chat_member.GetChatMember`" -msgstr "" - -#: aiogram.types.chat.Chat.get_member_count:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.get_chat_member_count.GetChatMemberCount` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.get_member_count:6 of -msgid "" -"Use this method to get the number of members in a chat. Returns *Int* on " -"success." -msgstr "" - -#: aiogram.types.chat.Chat.get_member_count:8 of -msgid "Source: https://core.telegram.org/bots/api#getchatmembercount" -msgstr "" - -#: aiogram.types.chat.Chat.get_member_count:10 of -msgid "" -"instance of method " -":class:`aiogram.methods.get_chat_member_count.GetChatMemberCount`" -msgstr "" - -#: aiogram.types.chat.Chat.leave:1 of -msgid "" -"Shortcut for method :class:`aiogram.methods.leave_chat.LeaveChat` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.leave:6 of -msgid "" -"Use this method for your bot to leave a group, supergroup or channel. " -"Returns :code:`True` on success." -msgstr "" - -#: aiogram.types.chat.Chat.leave:8 of -msgid "Source: https://core.telegram.org/bots/api#leavechat" -msgstr "" - -#: aiogram.types.chat.Chat.leave:10 of -msgid "instance of method :class:`aiogram.methods.leave_chat.LeaveChat`" -msgstr "" - -#: aiogram.types.chat.Chat.unpin_all_messages:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.unpin_all_chat_messages.UnpinAllChatMessages` " -"will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.unpin_all_messages:6 of -msgid "" -"Use this method to clear 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." -msgstr "" - -#: aiogram.types.chat.Chat.unpin_all_messages:8 of -msgid "Source: https://core.telegram.org/bots/api#unpinallchatmessages" -msgstr "" - -#: aiogram.types.chat.Chat.unpin_all_messages:10 of -msgid "" -"instance of method " -":class:`aiogram.methods.unpin_all_chat_messages.UnpinAllChatMessages`" -msgstr "" - -#: aiogram.types.chat.Chat.unpin_message:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.unpin_chat_message.UnpinChatMessage` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.unpin_message:6 of -msgid "" -"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." -msgstr "" - -#: aiogram.types.chat.Chat.unpin_message:8 of -msgid "Source: https://core.telegram.org/bots/api#unpinchatmessage" -msgstr "" - -#: aiogram.types.chat.Chat.unpin_message:10 of -msgid "" -"Identifier of a message to unpin. If not specified, the most recent " -"pinned message (by sending date) will be unpinned." -msgstr "" - -#: aiogram.types.chat.Chat.unpin_message:11 of -msgid "" -"instance of method " -":class:`aiogram.methods.unpin_chat_message.UnpinChatMessage`" -msgstr "" - -#: aiogram.types.chat.Chat.pin_message:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.pin_chat_message.PinChatMessage` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.pin_message:6 of -msgid "" -"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." -msgstr "" - -#: aiogram.types.chat.Chat.pin_message:8 of -msgid "Source: https://core.telegram.org/bots/api#pinchatmessage" -msgstr "" - -#: aiogram.types.chat.Chat.pin_message:10 of -msgid "Identifier of a message to pin" -msgstr "" - -#: aiogram.types.chat.Chat.pin_message:11 of -msgid "" -"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." -msgstr "" - -#: aiogram.types.chat.Chat.pin_message:12 of -msgid "" -"instance of method " -":class:`aiogram.methods.pin_chat_message.PinChatMessage`" -msgstr "" - -#: aiogram.types.chat.Chat.set_administrator_custom_title:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.set_chat_administrator_custom_title.SetChatAdministratorCustomTitle`" -" will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.set_administrator_custom_title:6 of -msgid "" -"Use this method to set a custom title for an administrator in a " -"supergroup promoted by the bot. Returns :code:`True` on success." -msgstr "" - -#: aiogram.types.chat.Chat.set_administrator_custom_title:8 of -msgid "Source: https://core.telegram.org/bots/api#setchatadministratorcustomtitle" -msgstr "" - -#: aiogram.types.chat.Chat.set_administrator_custom_title:11 of -msgid "" -"New custom title for the administrator; 0-16 characters, emoji are not " -"allowed" -msgstr "" - -#: aiogram.types.chat.Chat.set_administrator_custom_title:12 of -msgid "" -"instance of method " -":class:`aiogram.methods.set_chat_administrator_custom_title.SetChatAdministratorCustomTitle`" -msgstr "" - -#: aiogram.types.chat.Chat.set_permissions:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.set_chat_permissions.SetChatPermissions` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.set_permissions:6 of -msgid "" -"Use this method to set default chat permissions for all members. The bot " -"must be an administrator in the group or a supergroup for this to work " -"and must have the *can_restrict_members* administrator rights. Returns " -":code:`True` on success." -msgstr "" - -#: aiogram.types.chat.Chat.set_permissions:8 of -msgid "Source: https://core.telegram.org/bots/api#setchatpermissions" -msgstr "" - -#: aiogram.types.chat.Chat.set_permissions:10 of -msgid "A JSON-serialized object for new default chat permissions" -msgstr "" - -#: aiogram.types.chat.Chat.restrict:12 -#: aiogram.types.chat.Chat.set_permissions:11 of -msgid "" -"Pass :code:`True` if chat permissions are set independently. Otherwise, " -"the *can_send_other_messages* and *can_add_web_page_previews* permissions" -" will imply the *can_send_messages*, *can_send_audios*, " -"*can_send_documents*, *can_send_photos*, *can_send_videos*, " -"*can_send_video_notes*, and *can_send_voice_notes* permissions; the " -"*can_send_polls* permission will imply the *can_send_messages* " -"permission." -msgstr "" - -#: aiogram.types.chat.Chat.set_permissions:12 of -msgid "" -"instance of method " -":class:`aiogram.methods.set_chat_permissions.SetChatPermissions`" -msgstr "" - -#: aiogram.types.chat.Chat.promote:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.promote_chat_member.PromoteChatMember` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.promote:6 of -msgid "" -"Use this method to promote or demote a user in a supergroup or a channel." -" The bot must be an administrator in the chat for this to work and must " -"have the appropriate administrator rights. Pass :code:`False` for all " -"boolean parameters to demote a user. Returns :code:`True` on success." -msgstr "" - -#: aiogram.types.chat.Chat.promote:8 of -msgid "Source: https://core.telegram.org/bots/api#promotechatmember" -msgstr "" - -#: aiogram.types.chat.Chat.promote:11 of -msgid "Pass :code:`True` if the administrator's presence in the chat is hidden" -msgstr "" - -#: aiogram.types.chat.Chat.promote:12 of -msgid "" -"Pass :code:`True` if the administrator can access the chat event log, " -"chat statistics, message statistics in channels, see channel members, see" -" anonymous administrators in supergroups and ignore slow mode. Implied by" -" any other administrator privilege" -msgstr "" - -#: aiogram.types.chat.Chat.promote:13 of -msgid "" -"Pass :code:`True` if the administrator can create channel posts, channels" -" only" -msgstr "" - -#: aiogram.types.chat.Chat.promote:14 of -msgid "" -"Pass :code:`True` if the administrator can edit messages of other users " -"and can pin messages, channels only" -msgstr "" - -#: aiogram.types.chat.Chat.promote:15 of -msgid "Pass :code:`True` if the administrator can delete messages of other users" -msgstr "" - -#: aiogram.types.chat.Chat.promote:16 of -msgid "Pass :code:`True` if the administrator can manage video chats" -msgstr "" - -#: aiogram.types.chat.Chat.promote:17 of -msgid "" -"Pass :code:`True` if the administrator can restrict, ban or unban chat " -"members" -msgstr "" - -#: aiogram.types.chat.Chat.promote:18 of -msgid "" -"Pass :code:`True` if the administrator can add new administrators with a " -"subset of their own privileges or demote administrators that they have " -"promoted, directly or indirectly (promoted by administrators that were " -"appointed by him)" -msgstr "" - -#: aiogram.types.chat.Chat.promote:19 of -msgid "" -"Pass :code:`True` if the administrator can change chat title, photo and " -"other settings" -msgstr "" - -#: aiogram.types.chat.Chat.promote:20 of -msgid "Pass :code:`True` if the administrator can invite new users to the chat" -msgstr "" - -#: aiogram.types.chat.Chat.promote:21 of -msgid "Pass :code:`True` if the administrator can pin messages, supergroups only" -msgstr "" - -#: aiogram.types.chat.Chat.promote:22 of -msgid "" -"Pass :code:`True` if the user is allowed to create, rename, close, and " -"reopen forum topics, supergroups only" -msgstr "" - -#: aiogram.types.chat.Chat.promote:23 of -msgid "" -"instance of method " -":class:`aiogram.methods.promote_chat_member.PromoteChatMember`" -msgstr "" - -#: aiogram.types.chat.Chat.restrict:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.restrict_chat_member.RestrictChatMember` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.restrict:6 of -msgid "" -"Use this method to restrict a user in a supergroup. The bot must be an " -"administrator in the supergroup for this to work and must have the " -"appropriate administrator rights. Pass :code:`True` for all permissions " -"to lift restrictions from a user. Returns :code:`True` on success." -msgstr "" - -#: aiogram.types.chat.Chat.restrict:8 of -msgid "Source: https://core.telegram.org/bots/api#restrictchatmember" -msgstr "" - -#: aiogram.types.chat.Chat.restrict:11 of -msgid "A JSON-serialized object for new user permissions" -msgstr "" - -#: aiogram.types.chat.Chat.restrict:13 of -msgid "" -"Date when restrictions will be lifted for the user, unix time. If user is" -" restricted for more than 366 days or less than 30 seconds from the " -"current time, they are considered to be restricted forever" -msgstr "" - -#: aiogram.types.chat.Chat.restrict:14 of -msgid "" -"instance of method " -":class:`aiogram.methods.restrict_chat_member.RestrictChatMember`" -msgstr "" - -#: aiogram.types.chat.Chat.unban:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.unban_chat_member.UnbanChatMember` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.unban:6 of -msgid "" -"Use this method to unban a previously banned user in a supergroup or " -"channel. The user will **not** return to the group or channel " -"automatically, but will be able to join via link, etc. The bot must be an" -" administrator for this to work. By default, this method guarantees that " -"after the call the user is not a member of the chat, but will be able to " -"join it. So if the user is a member of the chat they will also be " -"**removed** from the chat. If you don't want this, use the parameter " -"*only_if_banned*. Returns :code:`True` on success." -msgstr "" - -#: aiogram.types.chat.Chat.unban:8 of -msgid "Source: https://core.telegram.org/bots/api#unbanchatmember" -msgstr "" - -#: aiogram.types.chat.Chat.unban:11 of -msgid "Do nothing if the user is not banned" -msgstr "" - -#: aiogram.types.chat.Chat.unban:12 of -msgid "" -"instance of method " -":class:`aiogram.methods.unban_chat_member.UnbanChatMember`" -msgstr "" - -#: aiogram.types.chat.Chat.ban:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.ban_chat_member.BanChatMember` will automatically" -" fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.ban:6 of -msgid "" -"Use this method to ban a user in a group, a supergroup or a channel. In " -"the case of supergroups and channels, the user will not be able to return" -" to the chat on their own using invite links, etc., unless `unbanned " -"`_ first. The bot " -"must be an administrator in the chat for this to work and must have the " -"appropriate administrator rights. Returns :code:`True` on success." -msgstr "" - -#: aiogram.types.chat.Chat.ban:8 of -msgid "Source: https://core.telegram.org/bots/api#banchatmember" -msgstr "" - -#: aiogram.types.chat.Chat.ban:11 of -msgid "" -"Date when the user will be unbanned, unix time. If user is banned for " -"more than 366 days or less than 30 seconds from the current time they are" -" considered to be banned forever. Applied for supergroups and channels " -"only." -msgstr "" - -#: aiogram.types.chat.Chat.ban:12 of -msgid "" -"Pass :code:`True` to delete all messages from the chat for the user that " -"is being removed. If :code:`False`, the user will be able to see messages" -" in the group that were sent before the user was removed. Always " -":code:`True` for supergroups and channels." -msgstr "" - -#: aiogram.types.chat.Chat.ban:13 of -msgid "instance of method :class:`aiogram.methods.ban_chat_member.BanChatMember`" -msgstr "" - -#: aiogram.types.chat.Chat.set_description:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.set_chat_description.SetChatDescription` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.set_description:6 of -msgid "" -"Use this method to change the description of a group, a supergroup or a " -"channel. The bot must be an administrator in the chat for this to work " -"and must have the appropriate administrator rights. Returns :code:`True` " -"on success." -msgstr "" - -#: aiogram.types.chat.Chat.set_description:8 of -msgid "Source: https://core.telegram.org/bots/api#setchatdescription" -msgstr "" - -#: aiogram.types.chat.Chat.set_description:10 of -msgid "New chat description, 0-255 characters" -msgstr "" - -#: aiogram.types.chat.Chat.set_description:11 of -msgid "" -"instance of method " -":class:`aiogram.methods.set_chat_description.SetChatDescription`" -msgstr "" - -#: aiogram.types.chat.Chat.set_title:1 of -msgid "" -"Shortcut for method :class:`aiogram.methods.set_chat_title.SetChatTitle` " -"will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.set_title:6 of -msgid "" -"Use this method to change the title of a chat. Titles can't be changed " -"for private chats. The bot must be an administrator in the chat for this " -"to work and must have the appropriate administrator rights. Returns " -":code:`True` on success." -msgstr "" - -#: aiogram.types.chat.Chat.set_title:8 of -msgid "Source: https://core.telegram.org/bots/api#setchattitle" -msgstr "" - -#: aiogram.types.chat.Chat.set_title:10 of -msgid "New chat title, 1-128 characters" -msgstr "" - -#: aiogram.types.chat.Chat.set_title:11 of -msgid "instance of method :class:`aiogram.methods.set_chat_title.SetChatTitle`" -msgstr "" - -#: aiogram.types.chat.Chat.delete_photo:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.delete_chat_photo.DeleteChatPhoto` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.delete_photo:6 of -msgid "" -"Use this method to delete a chat photo. Photos can't be changed for " -"private chats. The bot must be an administrator in the chat for this to " -"work and must have the appropriate administrator rights. Returns " -":code:`True` on success." -msgstr "" - -#: aiogram.types.chat.Chat.delete_photo:8 of -msgid "Source: https://core.telegram.org/bots/api#deletechatphoto" -msgstr "" - -#: aiogram.types.chat.Chat.delete_photo:10 of -msgid "" -"instance of method " -":class:`aiogram.methods.delete_chat_photo.DeleteChatPhoto`" -msgstr "" - -#: aiogram.types.chat.Chat.set_photo:1 of -msgid "" -"Shortcut for method :class:`aiogram.methods.set_chat_photo.SetChatPhoto` " -"will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat.Chat.set_photo:6 of -msgid "" -"Use this method to set a new profile photo for the chat. Photos can't be " -"changed for private chats. The bot must be an administrator in the chat " -"for this to work and must have the appropriate administrator rights. " -"Returns :code:`True` on success." -msgstr "" - -#: aiogram.types.chat.Chat.set_photo:8 of -msgid "Source: https://core.telegram.org/bots/api#setchatphoto" -msgstr "" - -#: aiogram.types.chat.Chat.set_photo:10 of -msgid "New chat photo, uploaded using multipart/form-data" -msgstr "" - -#: aiogram.types.chat.Chat.set_photo:11 of -msgid "instance of method :class:`aiogram.methods.set_chat_photo.SetChatPhoto`" -msgstr "" - -#~ msgid "" -#~ "Use this method to get information " -#~ "about a member of a chat. The " -#~ "method is guaranteed to work for " -#~ "other users, only if the bot is" -#~ " an administrator in the chat. " -#~ "Returns a :class:`aiogram.types.chat_member.ChatMember`" -#~ " object on success." -#~ msgstr "" - -#~ msgid "" -#~ "Pass :code:`True` if the administrator " -#~ "can add new administrators with a " -#~ "subset of their own privileges or " -#~ "demote administrators that he has " -#~ "promoted, directly or indirectly (promoted " -#~ "by administrators that were appointed by" -#~ " him)" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/chat_administrator_rights.po b/docs/locale/en/LC_MESSAGES/api/types/chat_administrator_rights.po deleted file mode 100644 index fc696d31..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/chat_administrator_rights.po +++ /dev/null @@ -1,130 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/types/chat_administrator_rights.rst:3 -msgid "ChatAdministratorRights" -msgstr "" - -#: aiogram.types.chat_administrator_rights.ChatAdministratorRights:1 of -msgid "Represents the rights of an administrator in a chat." -msgstr "" - -#: aiogram.types.chat_administrator_rights.ChatAdministratorRights:3 of -msgid "Source: https://core.telegram.org/bots/api#chatadministratorrights" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_administrator_rights.ChatAdministratorRights.is_anonymous:1 -#: of -msgid ":code:`True`, if the user's presence in the chat is hidden" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_administrator_rights.ChatAdministratorRights.can_manage_chat:1 -#: of -msgid "" -":code:`True`, if the administrator can access the chat event log, chat " -"statistics, message statistics in channels, see channel members, see " -"anonymous administrators in supergroups and ignore slow mode. Implied by " -"any other administrator privilege" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_administrator_rights.ChatAdministratorRights.can_delete_messages:1 -#: of -msgid ":code:`True`, if the administrator can delete messages of other users" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_administrator_rights.ChatAdministratorRights.can_manage_video_chats:1 -#: of -msgid ":code:`True`, if the administrator can manage video chats" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_administrator_rights.ChatAdministratorRights.can_restrict_members:1 -#: of -msgid ":code:`True`, if the administrator can restrict, ban or unban chat members" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_administrator_rights.ChatAdministratorRights.can_promote_members:1 -#: of -msgid "" -":code:`True`, if the administrator can add new administrators with a " -"subset of their own privileges or demote administrators that they have " -"promoted, directly or indirectly (promoted by administrators that were " -"appointed by the user)" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_administrator_rights.ChatAdministratorRights.can_change_info:1 -#: of -msgid "" -":code:`True`, if the user is allowed to change the chat title, photo and " -"other settings" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_administrator_rights.ChatAdministratorRights.can_invite_users:1 -#: of -msgid ":code:`True`, if the user is allowed to invite new users to the chat" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_administrator_rights.ChatAdministratorRights.can_post_messages:1 -#: of -msgid "" -"*Optional*. :code:`True`, if the administrator can post in the channel; " -"channels only" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_administrator_rights.ChatAdministratorRights.can_edit_messages:1 -#: of -msgid "" -"*Optional*. :code:`True`, if the administrator can edit messages of other" -" users and can pin messages; channels only" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_administrator_rights.ChatAdministratorRights.can_pin_messages:1 -#: of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to pin messages; groups " -"and supergroups only" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_administrator_rights.ChatAdministratorRights.can_manage_topics:1 -#: of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to create, rename, " -"close, and reopen forum topics; supergroups only" -msgstr "" - -#~ msgid "" -#~ ":code:`True`, if the administrator can " -#~ "add new administrators with a subset " -#~ "of their own privileges or demote " -#~ "administrators that he has promoted, " -#~ "directly or indirectly (promoted by " -#~ "administrators that were appointed by " -#~ "the user)" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/chat_invite_link.po b/docs/locale/en/LC_MESSAGES/api/types/chat_invite_link.po deleted file mode 100644 index 15c1a9e0..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/chat_invite_link.po +++ /dev/null @@ -1,82 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/chat_invite_link.rst:3 -msgid "ChatInviteLink" -msgstr "" - -#: aiogram.types.chat_invite_link.ChatInviteLink:1 of -msgid "Represents an invite link for a chat." -msgstr "" - -#: aiogram.types.chat_invite_link.ChatInviteLink:3 of -msgid "Source: https://core.telegram.org/bots/api#chatinvitelink" -msgstr "" - -#: ../../docstring aiogram.types.chat_invite_link.ChatInviteLink.invite_link:1 -#: of -msgid "" -"The invite link. If the link was created by another chat administrator, " -"then the second part of the link will be replaced with '…'." -msgstr "" - -#: ../../docstring aiogram.types.chat_invite_link.ChatInviteLink.creator:1 of -msgid "Creator of the link" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_invite_link.ChatInviteLink.creates_join_request:1 of -msgid "" -":code:`True`, if users joining the chat via the link need to be approved " -"by chat administrators" -msgstr "" - -#: ../../docstring aiogram.types.chat_invite_link.ChatInviteLink.is_primary:1 -#: of -msgid ":code:`True`, if the link is primary" -msgstr "" - -#: ../../docstring aiogram.types.chat_invite_link.ChatInviteLink.is_revoked:1 -#: of -msgid ":code:`True`, if the link is revoked" -msgstr "" - -#: ../../docstring aiogram.types.chat_invite_link.ChatInviteLink.name:1 of -msgid "*Optional*. Invite link name" -msgstr "" - -#: ../../docstring aiogram.types.chat_invite_link.ChatInviteLink.expire_date:1 -#: of -msgid "" -"*Optional*. Point in time (Unix timestamp) when the link will expire or " -"has been expired" -msgstr "" - -#: ../../docstring aiogram.types.chat_invite_link.ChatInviteLink.member_limit:1 -#: of -msgid "" -"*Optional*. The maximum number of users that can be members of the chat " -"simultaneously after joining the chat via this invite link; 1-99999" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_invite_link.ChatInviteLink.pending_join_request_count:1 -#: of -msgid "*Optional*. Number of pending join requests created using this link" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/chat_join_request.po b/docs/locale/en/LC_MESSAGES/api/types/chat_join_request.po deleted file mode 100644 index f1035f20..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/chat_join_request.po +++ /dev/null @@ -1,135 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/types/chat_join_request.rst:3 -msgid "ChatJoinRequest" -msgstr "" - -#: aiogram.types.chat_join_request.ChatJoinRequest:1 of -msgid "Represents a join request sent to a chat." -msgstr "" - -#: aiogram.types.chat_join_request.ChatJoinRequest:3 of -msgid "Source: https://core.telegram.org/bots/api#chatjoinrequest" -msgstr "" - -#: ../../docstring aiogram.types.chat_join_request.ChatJoinRequest.chat:1 of -msgid "Chat to which the request was sent" -msgstr "" - -#: ../../docstring aiogram.types.chat_join_request.ChatJoinRequest.from_user:1 -#: of -msgid "User that sent the join request" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_join_request.ChatJoinRequest.user_chat_id:1 of -msgid "" -"Identifier of a private chat with the user who sent the join request. " -"This number may have more than 32 significant bits and some programming " -"languages may have difficulty/silent defects in interpreting it. But it " -"has at most 52 significant bits, so a 64-bit integer or double-precision " -"float type are safe for storing this identifier. The bot can use this " -"identifier for 24 hours to send messages until the join request is " -"processed, assuming no other administrator contacted the user." -msgstr "" - -#: ../../docstring aiogram.types.chat_join_request.ChatJoinRequest.date:1 of -msgid "Date the request was sent in Unix time" -msgstr "" - -#: ../../docstring aiogram.types.chat_join_request.ChatJoinRequest.bio:1 of -msgid "*Optional*. Bio of the user." -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_join_request.ChatJoinRequest.invite_link:1 of -msgid "" -"*Optional*. Chat invite link that was used by the user to send the join " -"request" -msgstr "" - -#: aiogram.types.chat_join_request.ChatJoinRequest.approve:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.approve_chat_join_request.ApproveChatJoinRequest`" -" will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat_join_request.ChatJoinRequest.approve:4 -#: aiogram.types.chat_join_request.ChatJoinRequest.decline:4 of -msgid ":code:`chat_id`" -msgstr "" - -#: aiogram.types.chat_join_request.ChatJoinRequest.approve:5 -#: aiogram.types.chat_join_request.ChatJoinRequest.decline:5 of -msgid ":code:`user_id`" -msgstr "" - -#: aiogram.types.chat_join_request.ChatJoinRequest.approve:7 of -msgid "" -"Use this method to approve a chat join request. The bot must be an " -"administrator in the chat for this to work and must have the " -"*can_invite_users* administrator right. Returns :code:`True` on success." -msgstr "" - -#: aiogram.types.chat_join_request.ChatJoinRequest.approve:9 of -msgid "Source: https://core.telegram.org/bots/api#approvechatjoinrequest" -msgstr "" - -#: aiogram.types.chat_join_request.ChatJoinRequest.approve -#: aiogram.types.chat_join_request.ChatJoinRequest.decline of -msgid "Returns" -msgstr "" - -#: aiogram.types.chat_join_request.ChatJoinRequest.approve:11 of -msgid "" -"instance of method " -":class:`aiogram.methods.approve_chat_join_request.ApproveChatJoinRequest`" -msgstr "" - -#: aiogram.types.chat_join_request.ChatJoinRequest.decline:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.decline_chat_join_request.DeclineChatJoinRequest`" -" will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.chat_join_request.ChatJoinRequest.decline:7 of -msgid "" -"Use this method to decline a chat join request. The bot must be an " -"administrator in the chat for this to work and must have the " -"*can_invite_users* administrator right. Returns :code:`True` on success." -msgstr "" - -#: aiogram.types.chat_join_request.ChatJoinRequest.decline:9 of -msgid "Source: https://core.telegram.org/bots/api#declinechatjoinrequest" -msgstr "" - -#: aiogram.types.chat_join_request.ChatJoinRequest.decline:11 of -msgid "" -"instance of method " -":class:`aiogram.methods.decline_chat_join_request.DeclineChatJoinRequest`" -msgstr "" - -#~ msgid "Use this method to approve a chat join request." -#~ msgstr "" - -#~ msgid "Use this method to decline a chat join request." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/chat_location.po b/docs/locale/en/LC_MESSAGES/api/types/chat_location.po deleted file mode 100644 index ce065a0e..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/chat_location.po +++ /dev/null @@ -1,40 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/chat_location.rst:3 -msgid "ChatLocation" -msgstr "" - -#: aiogram.types.chat_location.ChatLocation:1 of -msgid "Represents a location to which a chat is connected." -msgstr "" - -#: aiogram.types.chat_location.ChatLocation:3 of -msgid "Source: https://core.telegram.org/bots/api#chatlocation" -msgstr "" - -#: ../../docstring aiogram.types.chat_location.ChatLocation.location:1 of -msgid "" -"The location to which the supergroup is connected. Can't be a live " -"location." -msgstr "" - -#: ../../docstring aiogram.types.chat_location.ChatLocation.address:1 of -msgid "Location address; 1-64 characters, as defined by the chat owner" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/chat_member.po b/docs/locale/en/LC_MESSAGES/api/types/chat_member.po deleted file mode 100644 index 6c775a80..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/chat_member.po +++ /dev/null @@ -1,238 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/types/chat_member.rst:3 -msgid "ChatMember" -msgstr "" - -#: aiogram.types.chat_member.ChatMember:1 of -msgid "" -"This object contains information about one member of a chat. Currently, " -"the following 6 types of chat members are supported:" -msgstr "" - -#: aiogram.types.chat_member.ChatMember:3 of -msgid ":class:`aiogram.types.chat_member_owner.ChatMemberOwner`" -msgstr "" - -#: aiogram.types.chat_member.ChatMember:4 of -msgid ":class:`aiogram.types.chat_member_administrator.ChatMemberAdministrator`" -msgstr "" - -#: aiogram.types.chat_member.ChatMember:5 of -msgid ":class:`aiogram.types.chat_member_member.ChatMemberMember`" -msgstr "" - -#: aiogram.types.chat_member.ChatMember:6 of -msgid ":class:`aiogram.types.chat_member_restricted.ChatMemberRestricted`" -msgstr "" - -#: aiogram.types.chat_member.ChatMember:7 of -msgid ":class:`aiogram.types.chat_member_left.ChatMemberLeft`" -msgstr "" - -#: aiogram.types.chat_member.ChatMember:8 of -msgid ":class:`aiogram.types.chat_member_banned.ChatMemberBanned`" -msgstr "" - -#: aiogram.types.chat_member.ChatMember:10 of -msgid "Source: https://core.telegram.org/bots/api#chatmember" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.status:1 of -msgid "The member's status in the chat" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.user:1 of -msgid "*Optional*. Information about the user" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.is_anonymous:1 of -msgid "*Optional*. :code:`True`, if the user's presence in the chat is hidden" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.custom_title:1 of -msgid "*Optional*. Custom title for this user" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_be_edited:1 of -msgid "" -"*Optional*. :code:`True`, if the bot is allowed to edit administrator " -"privileges of that user" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_manage_chat:1 of -msgid "" -"*Optional*. :code:`True`, if the administrator can access the chat event " -"log, chat statistics, message statistics in channels, see channel " -"members, see anonymous administrators in supergroups and ignore slow " -"mode. Implied by any other administrator privilege" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_delete_messages:1 -#: of -msgid "" -"*Optional*. :code:`True`, if the administrator can delete messages of " -"other users" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member.ChatMember.can_manage_video_chats:1 of -msgid "*Optional*. :code:`True`, if the administrator can manage video chats" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_restrict_members:1 -#: of -msgid "" -"*Optional*. :code:`True`, if the administrator can restrict, ban or unban" -" chat members" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_promote_members:1 -#: of -msgid "" -"*Optional*. :code:`True`, if the administrator can add new administrators" -" with a subset of their own privileges or demote administrators that they" -" have promoted, directly or indirectly (promoted by administrators that " -"were appointed by the user)" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_change_info:1 of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to change the chat " -"title, photo and other settings" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_invite_users:1 of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to invite new users to " -"the chat" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_post_messages:1 of -msgid "" -"*Optional*. :code:`True`, if the administrator can post in the channel; " -"channels only" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_edit_messages:1 of -msgid "" -"*Optional*. :code:`True`, if the administrator can edit messages of other" -" users and can pin messages; channels only" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_pin_messages:1 of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to pin messages; groups " -"and supergroups only" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_manage_topics:1 of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to create, rename, " -"close, and reopen forum topics; supergroups only" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.is_member:1 of -msgid "" -"*Optional*. :code:`True`, if the user is a member of the chat at the " -"moment of the request" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_send_messages:1 of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to send text messages, " -"contacts, invoices, locations and venues" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_send_audios:1 of -msgid "*Optional*. :code:`True`, if the user is allowed to send audios" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_send_documents:1 of -msgid "*Optional*. :code:`True`, if the user is allowed to send documents" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_send_photos:1 of -msgid "*Optional*. :code:`True`, if the user is allowed to send photos" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_send_videos:1 of -msgid "*Optional*. :code:`True`, if the user is allowed to send videos" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_send_video_notes:1 -#: of -msgid "*Optional*. :code:`True`, if the user is allowed to send video notes" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_send_voice_notes:1 -#: of -msgid "*Optional*. :code:`True`, if the user is allowed to send voice notes" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_send_polls:1 of -msgid "*Optional*. :code:`True`, if the user is allowed to send polls" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member.ChatMember.can_send_other_messages:1 of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to send animations, " -"games, stickers and use inline bots" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member.ChatMember.can_add_web_page_previews:1 of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to add web page previews" -" to their messages" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.until_date:1 of -msgid "" -"*Optional*. Date when restrictions will be lifted for this user; unix " -"time. If 0, then the user is restricted forever" -msgstr "" - -#~ msgid "..." -#~ msgstr "" - -#~ msgid "" -#~ "*Optional*. :code:`True`, if the administrator" -#~ " can add new administrators with a" -#~ " subset of their own privileges or" -#~ " demote administrators that he has " -#~ "promoted, directly or indirectly (promoted " -#~ "by administrators that were appointed by" -#~ " the user)" -#~ msgstr "" - -#~ msgid "" -#~ "*Optional*. :code:`True`, if the user is" -#~ " allowed to send text messages, " -#~ "contacts, locations and venues" -#~ msgstr "" - -#~ msgid "" -#~ "*Optional*. :code:`True`, if the user is" -#~ " allowed to send audios, documents, " -#~ "photos, videos, video notes and voice" -#~ " notes" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/chat_member_administrator.po b/docs/locale/en/LC_MESSAGES/api/types/chat_member_administrator.po deleted file mode 100644 index 9b51540f..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/chat_member_administrator.po +++ /dev/null @@ -1,157 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/types/chat_member_administrator.rst:3 -msgid "ChatMemberAdministrator" -msgstr "" - -#: aiogram.types.chat_member_administrator.ChatMemberAdministrator:1 of -msgid "" -"Represents a `chat member " -"`_ that has some " -"additional privileges." -msgstr "" - -#: aiogram.types.chat_member_administrator.ChatMemberAdministrator:3 of -msgid "Source: https://core.telegram.org/bots/api#chatmemberadministrator" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_administrator.ChatMemberAdministrator.status:1 of -msgid "The member's status in the chat, always 'administrator'" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_administrator.ChatMemberAdministrator.user:1 of -msgid "Information about the user" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_administrator.ChatMemberAdministrator.can_be_edited:1 -#: of -msgid "" -":code:`True`, if the bot is allowed to edit administrator privileges of " -"that user" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_administrator.ChatMemberAdministrator.is_anonymous:1 -#: of -msgid ":code:`True`, if the user's presence in the chat is hidden" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_administrator.ChatMemberAdministrator.can_manage_chat:1 -#: of -msgid "" -":code:`True`, if the administrator can access the chat event log, chat " -"statistics, message statistics in channels, see channel members, see " -"anonymous administrators in supergroups and ignore slow mode. Implied by " -"any other administrator privilege" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_administrator.ChatMemberAdministrator.can_delete_messages:1 -#: of -msgid ":code:`True`, if the administrator can delete messages of other users" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_administrator.ChatMemberAdministrator.can_manage_video_chats:1 -#: of -msgid ":code:`True`, if the administrator can manage video chats" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_administrator.ChatMemberAdministrator.can_restrict_members:1 -#: of -msgid ":code:`True`, if the administrator can restrict, ban or unban chat members" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_administrator.ChatMemberAdministrator.can_promote_members:1 -#: of -msgid "" -":code:`True`, if the administrator can add new administrators with a " -"subset of their own privileges or demote administrators that they have " -"promoted, directly or indirectly (promoted by administrators that were " -"appointed by the user)" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_administrator.ChatMemberAdministrator.can_change_info:1 -#: of -msgid "" -":code:`True`, if the user is allowed to change the chat title, photo and " -"other settings" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_administrator.ChatMemberAdministrator.can_invite_users:1 -#: of -msgid ":code:`True`, if the user is allowed to invite new users to the chat" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_administrator.ChatMemberAdministrator.can_post_messages:1 -#: of -msgid "" -"*Optional*. :code:`True`, if the administrator can post in the channel; " -"channels only" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_administrator.ChatMemberAdministrator.can_edit_messages:1 -#: of -msgid "" -"*Optional*. :code:`True`, if the administrator can edit messages of other" -" users and can pin messages; channels only" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_administrator.ChatMemberAdministrator.can_pin_messages:1 -#: of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to pin messages; groups " -"and supergroups only" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_administrator.ChatMemberAdministrator.can_manage_topics:1 -#: of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to create, rename, " -"close, and reopen forum topics; supergroups only" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_administrator.ChatMemberAdministrator.custom_title:1 -#: of -msgid "*Optional*. Custom title for this user" -msgstr "" - -#~ msgid "" -#~ ":code:`True`, if the administrator can " -#~ "add new administrators with a subset " -#~ "of their own privileges or demote " -#~ "administrators that he has promoted, " -#~ "directly or indirectly (promoted by " -#~ "administrators that were appointed by " -#~ "the user)" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/chat_member_banned.po b/docs/locale/en/LC_MESSAGES/api/types/chat_member_banned.po deleted file mode 100644 index 5b7267fb..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/chat_member_banned.po +++ /dev/null @@ -1,49 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/chat_member_banned.rst:3 -msgid "ChatMemberBanned" -msgstr "" - -#: aiogram.types.chat_member_banned.ChatMemberBanned:1 of -msgid "" -"Represents a `chat member " -"`_ that was banned in the " -"chat and can't return to the chat or view chat messages." -msgstr "" - -#: aiogram.types.chat_member_banned.ChatMemberBanned:3 of -msgid "Source: https://core.telegram.org/bots/api#chatmemberbanned" -msgstr "" - -#: ../../docstring aiogram.types.chat_member_banned.ChatMemberBanned.status:1 -#: of -msgid "The member's status in the chat, always 'kicked'" -msgstr "" - -#: ../../docstring aiogram.types.chat_member_banned.ChatMemberBanned.user:1 of -msgid "Information about the user" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_banned.ChatMemberBanned.until_date:1 of -msgid "" -"Date when restrictions will be lifted for this user; unix time. If 0, " -"then the user is banned forever" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/chat_member_left.po b/docs/locale/en/LC_MESSAGES/api/types/chat_member_left.po deleted file mode 100644 index cae2e7b8..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/chat_member_left.po +++ /dev/null @@ -1,41 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/chat_member_left.rst:3 -msgid "ChatMemberLeft" -msgstr "" - -#: aiogram.types.chat_member_left.ChatMemberLeft:1 of -msgid "" -"Represents a `chat member " -"`_ that isn't currently a " -"member of the chat, but may join it themselves." -msgstr "" - -#: aiogram.types.chat_member_left.ChatMemberLeft:3 of -msgid "Source: https://core.telegram.org/bots/api#chatmemberleft" -msgstr "" - -#: ../../docstring aiogram.types.chat_member_left.ChatMemberLeft.status:1 of -msgid "The member's status in the chat, always 'left'" -msgstr "" - -#: ../../docstring aiogram.types.chat_member_left.ChatMemberLeft.user:1 of -msgid "Information about the user" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/chat_member_member.po b/docs/locale/en/LC_MESSAGES/api/types/chat_member_member.po deleted file mode 100644 index 8bc63e6e..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/chat_member_member.po +++ /dev/null @@ -1,42 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/chat_member_member.rst:3 -msgid "ChatMemberMember" -msgstr "" - -#: aiogram.types.chat_member_member.ChatMemberMember:1 of -msgid "" -"Represents a `chat member " -"`_ that has no additional " -"privileges or restrictions." -msgstr "" - -#: aiogram.types.chat_member_member.ChatMemberMember:3 of -msgid "Source: https://core.telegram.org/bots/api#chatmembermember" -msgstr "" - -#: ../../docstring aiogram.types.chat_member_member.ChatMemberMember.status:1 -#: of -msgid "The member's status in the chat, always 'member'" -msgstr "" - -#: ../../docstring aiogram.types.chat_member_member.ChatMemberMember.user:1 of -msgid "Information about the user" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/chat_member_owner.po b/docs/locale/en/LC_MESSAGES/api/types/chat_member_owner.po deleted file mode 100644 index 25470e8c..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/chat_member_owner.po +++ /dev/null @@ -1,51 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/chat_member_owner.rst:3 -msgid "ChatMemberOwner" -msgstr "" - -#: aiogram.types.chat_member_owner.ChatMemberOwner:1 of -msgid "" -"Represents a `chat member " -"`_ that owns the chat and " -"has all administrator privileges." -msgstr "" - -#: aiogram.types.chat_member_owner.ChatMemberOwner:3 of -msgid "Source: https://core.telegram.org/bots/api#chatmemberowner" -msgstr "" - -#: ../../docstring aiogram.types.chat_member_owner.ChatMemberOwner.status:1 of -msgid "The member's status in the chat, always 'creator'" -msgstr "" - -#: ../../docstring aiogram.types.chat_member_owner.ChatMemberOwner.user:1 of -msgid "Information about the user" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_owner.ChatMemberOwner.is_anonymous:1 of -msgid ":code:`True`, if the user's presence in the chat is hidden" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_owner.ChatMemberOwner.custom_title:1 of -msgid "*Optional*. Custom title for this user" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/chat_member_restricted.po b/docs/locale/en/LC_MESSAGES/api/types/chat_member_restricted.po deleted file mode 100644 index a0f2f184..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/chat_member_restricted.po +++ /dev/null @@ -1,161 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/types/chat_member_restricted.rst:3 -msgid "ChatMemberRestricted" -msgstr "" - -#: aiogram.types.chat_member_restricted.ChatMemberRestricted:1 of -msgid "" -"Represents a `chat member " -"`_ that is under certain " -"restrictions in the chat. Supergroups only." -msgstr "" - -#: aiogram.types.chat_member_restricted.ChatMemberRestricted:3 of -msgid "Source: https://core.telegram.org/bots/api#chatmemberrestricted" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_restricted.ChatMemberRestricted.status:1 of -msgid "The member's status in the chat, always 'restricted'" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_restricted.ChatMemberRestricted.user:1 of -msgid "Information about the user" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_restricted.ChatMemberRestricted.is_member:1 of -msgid "" -":code:`True`, if the user is a member of the chat at the moment of the " -"request" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_restricted.ChatMemberRestricted.can_send_messages:1 -#: of -msgid "" -":code:`True`, if the user is allowed to send text messages, contacts, " -"invoices, locations and venues" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_restricted.ChatMemberRestricted.can_send_audios:1 -#: of -msgid ":code:`True`, if the user is allowed to send audios" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_restricted.ChatMemberRestricted.can_send_documents:1 -#: of -msgid ":code:`True`, if the user is allowed to send documents" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_restricted.ChatMemberRestricted.can_send_photos:1 -#: of -msgid ":code:`True`, if the user is allowed to send photos" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_restricted.ChatMemberRestricted.can_send_videos:1 -#: of -msgid ":code:`True`, if the user is allowed to send videos" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_restricted.ChatMemberRestricted.can_send_video_notes:1 -#: of -msgid ":code:`True`, if the user is allowed to send video notes" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_restricted.ChatMemberRestricted.can_send_voice_notes:1 -#: of -msgid ":code:`True`, if the user is allowed to send voice notes" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_restricted.ChatMemberRestricted.can_send_polls:1 -#: of -msgid ":code:`True`, if the user is allowed to send polls" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_restricted.ChatMemberRestricted.can_send_other_messages:1 -#: of -msgid "" -":code:`True`, if the user is allowed to send animations, games, stickers " -"and use inline bots" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_restricted.ChatMemberRestricted.can_add_web_page_previews:1 -#: of -msgid "" -":code:`True`, if the user is allowed to add web page previews to their " -"messages" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_restricted.ChatMemberRestricted.can_change_info:1 -#: of -msgid "" -":code:`True`, if the user is allowed to change the chat title, photo and " -"other settings" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_restricted.ChatMemberRestricted.can_invite_users:1 -#: of -msgid ":code:`True`, if the user is allowed to invite new users to the chat" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_restricted.ChatMemberRestricted.can_pin_messages:1 -#: of -msgid ":code:`True`, if the user is allowed to pin messages" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_restricted.ChatMemberRestricted.can_manage_topics:1 -#: of -msgid ":code:`True`, if the user is allowed to create forum topics" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_restricted.ChatMemberRestricted.until_date:1 of -msgid "" -"Date when restrictions will be lifted for this user; unix time. If 0, " -"then the user is restricted forever" -msgstr "" - -#~ msgid "" -#~ ":code:`True`, if the user is allowed " -#~ "to send text messages, contacts, " -#~ "locations and venues" -#~ msgstr "" - -#~ msgid "" -#~ ":code:`True`, if the user is allowed " -#~ "to send audios, documents, photos, " -#~ "videos, video notes and voice notes" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/chat_member_updated.po b/docs/locale/en/LC_MESSAGES/api/types/chat_member_updated.po deleted file mode 100644 index a362821e..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/chat_member_updated.po +++ /dev/null @@ -1,62 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/chat_member_updated.rst:3 -msgid "ChatMemberUpdated" -msgstr "" - -#: aiogram.types.chat_member_updated.ChatMemberUpdated:1 of -msgid "This object represents changes in the status of a chat member." -msgstr "" - -#: aiogram.types.chat_member_updated.ChatMemberUpdated:3 of -msgid "Source: https://core.telegram.org/bots/api#chatmemberupdated" -msgstr "" - -#: ../../docstring aiogram.types.chat_member_updated.ChatMemberUpdated.chat:1 -#: of -msgid "Chat the user belongs to" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_updated.ChatMemberUpdated.from_user:1 of -msgid "Performer of the action, which resulted in the change" -msgstr "" - -#: ../../docstring aiogram.types.chat_member_updated.ChatMemberUpdated.date:1 -#: of -msgid "Date the change was done in Unix time" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_updated.ChatMemberUpdated.old_chat_member:1 of -msgid "Previous information about the chat member" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_updated.ChatMemberUpdated.new_chat_member:1 of -msgid "New information about the chat member" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member_updated.ChatMemberUpdated.invite_link:1 of -msgid "" -"*Optional*. Chat invite link, which was used by the user to join the " -"chat; for joining by invite link events only." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/chat_permissions.po b/docs/locale/en/LC_MESSAGES/api/types/chat_permissions.po deleted file mode 100644 index 8dd59fb3..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/chat_permissions.po +++ /dev/null @@ -1,150 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/types/chat_permissions.rst:3 -msgid "ChatPermissions" -msgstr "" - -#: aiogram.types.chat_permissions.ChatPermissions:1 of -msgid "" -"Describes actions that a non-administrator user is allowed to take in a " -"chat." -msgstr "" - -#: aiogram.types.chat_permissions.ChatPermissions:3 of -msgid "Source: https://core.telegram.org/bots/api#chatpermissions" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_permissions.ChatPermissions.can_send_messages:1 of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to send text messages, " -"contacts, invoices, locations and venues" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_permissions.ChatPermissions.can_send_audios:1 of -msgid "*Optional*. :code:`True`, if the user is allowed to send audios" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_permissions.ChatPermissions.can_send_documents:1 of -msgid "*Optional*. :code:`True`, if the user is allowed to send documents" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_permissions.ChatPermissions.can_send_photos:1 of -msgid "*Optional*. :code:`True`, if the user is allowed to send photos" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_permissions.ChatPermissions.can_send_videos:1 of -msgid "*Optional*. :code:`True`, if the user is allowed to send videos" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_permissions.ChatPermissions.can_send_video_notes:1 of -msgid "*Optional*. :code:`True`, if the user is allowed to send video notes" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_permissions.ChatPermissions.can_send_voice_notes:1 of -msgid "*Optional*. :code:`True`, if the user is allowed to send voice notes" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_permissions.ChatPermissions.can_send_polls:1 of -msgid "*Optional*. :code:`True`, if the user is allowed to send polls" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_permissions.ChatPermissions.can_send_other_messages:1 of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to send animations, " -"games, stickers and use inline bots" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_permissions.ChatPermissions.can_add_web_page_previews:1 -#: of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to add web page previews" -" to their messages" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_permissions.ChatPermissions.can_change_info:1 of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to change the chat " -"title, photo and other settings. Ignored in public supergroups" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_permissions.ChatPermissions.can_invite_users:1 of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to invite new users to " -"the chat" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_permissions.ChatPermissions.can_pin_messages:1 of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to pin messages. Ignored" -" in public supergroups" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_permissions.ChatPermissions.can_manage_topics:1 of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to create forum topics. " -"If omitted defaults to the value of can_pin_messages" -msgstr "" - -#~ msgid "" -#~ "*Optional*. :code:`True`, if the user is" -#~ " allowed to send text messages, " -#~ "contacts, locations and venues" -#~ msgstr "" - -#~ msgid "" -#~ "*Optional*. :code:`True`, if the user is" -#~ " allowed to send audios, documents, " -#~ "photos, videos, video notes and voice" -#~ " notes, implies can_send_messages" -#~ msgstr "" - -#~ msgid "" -#~ "*Optional*. :code:`True`, if the user is" -#~ " allowed to send polls, implies " -#~ "can_send_messages" -#~ msgstr "" - -#~ msgid "" -#~ "*Optional*. :code:`True`, if the user is" -#~ " allowed to send animations, games, " -#~ "stickers and use inline bots, implies" -#~ " can_send_media_messages" -#~ msgstr "" - -#~ msgid "" -#~ "*Optional*. :code:`True`, if the user is" -#~ " allowed to add web page previews " -#~ "to their messages, implies " -#~ "can_send_media_messages" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/chat_photo.po b/docs/locale/en/LC_MESSAGES/api/types/chat_photo.po deleted file mode 100644 index 67bbfafe..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/chat_photo.po +++ /dev/null @@ -1,56 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/chat_photo.rst:3 -msgid "ChatPhoto" -msgstr "" - -#: aiogram.types.chat_photo.ChatPhoto:1 of -msgid "This object represents a chat photo." -msgstr "" - -#: aiogram.types.chat_photo.ChatPhoto:3 of -msgid "Source: https://core.telegram.org/bots/api#chatphoto" -msgstr "" - -#: ../../docstring aiogram.types.chat_photo.ChatPhoto.small_file_id:1 of -msgid "" -"File identifier of small (160x160) chat photo. This file_id can be used " -"only for photo download and only for as long as the photo is not changed." -msgstr "" - -#: ../../docstring aiogram.types.chat_photo.ChatPhoto.small_file_unique_id:1 of -msgid "" -"Unique file identifier of small (160x160) chat photo, which is supposed " -"to be the same over time and for different bots. Can't be used to " -"download or reuse the file." -msgstr "" - -#: ../../docstring aiogram.types.chat_photo.ChatPhoto.big_file_id:1 of -msgid "" -"File identifier of big (640x640) chat photo. This file_id can be used " -"only for photo download and only for as long as the photo is not changed." -msgstr "" - -#: ../../docstring aiogram.types.chat_photo.ChatPhoto.big_file_unique_id:1 of -msgid "" -"Unique file identifier of big (640x640) chat photo, which is supposed to " -"be the same over time and for different bots. Can't be used to download " -"or reuse the file." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/chat_shared.po b/docs/locale/en/LC_MESSAGES/api/types/chat_shared.po deleted file mode 100644 index def83f98..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/chat_shared.po +++ /dev/null @@ -1,49 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2023, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2023. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/types/chat_shared.rst:3 -msgid "ChatShared" -msgstr "" - -#: aiogram.types.chat_shared.ChatShared:1 of -msgid "" -"This object contains information about the chat whose identifier was " -"shared with the bot using a " -":class:`aiogram.types.keyboard_button_request_chat.KeyboardButtonRequestChat`" -" button." -msgstr "" - -#: aiogram.types.chat_shared.ChatShared:3 of -msgid "Source: https://core.telegram.org/bots/api#chatshared" -msgstr "" - -#: ../../docstring aiogram.types.chat_shared.ChatShared.request_id:1 of -msgid "Identifier of the request" -msgstr "" - -#: ../../docstring aiogram.types.chat_shared.ChatShared.chat_id:1 of -msgid "" -"Identifier of the shared chat. This number may have more than 32 " -"significant bits and some programming languages may have " -"difficulty/silent defects in interpreting it. But it has at most 52 " -"significant bits, so a 64-bit integer or double-precision float type are " -"safe for storing this identifier. The bot may not have access to the chat" -" and could be unable to use this identifier, unless the chat is already " -"known to the bot by some other means." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/chosen_inline_result.po b/docs/locale/en/LC_MESSAGES/api/types/chosen_inline_result.po deleted file mode 100644 index ebbc8e52..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/chosen_inline_result.po +++ /dev/null @@ -1,69 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/chosen_inline_result.rst:3 -msgid "ChosenInlineResult" -msgstr "" - -#: aiogram.types.chosen_inline_result.ChosenInlineResult:1 of -msgid "" -"Represents a `result " -"`_ of an inline " -"query that was chosen by the user and sent to their chat partner. " -"**Note:** It is necessary to enable `inline feedback " -"`_ via " -"`@BotFather `_ in order to receive these objects " -"in updates." -msgstr "" - -#: aiogram.types.chosen_inline_result.ChosenInlineResult:4 of -msgid "Source: https://core.telegram.org/bots/api#choseninlineresult" -msgstr "" - -#: ../../docstring -#: aiogram.types.chosen_inline_result.ChosenInlineResult.result_id:1 of -msgid "The unique identifier for the result that was chosen" -msgstr "" - -#: ../../docstring -#: aiogram.types.chosen_inline_result.ChosenInlineResult.from_user:1 of -msgid "The user that chose the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.chosen_inline_result.ChosenInlineResult.query:1 of -msgid "The query that was used to obtain the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.chosen_inline_result.ChosenInlineResult.location:1 of -msgid "*Optional*. Sender location, only for bots that require user location" -msgstr "" - -#: ../../docstring -#: aiogram.types.chosen_inline_result.ChosenInlineResult.inline_message_id:1 of -msgid "" -"*Optional*. Identifier of the sent inline message. Available only if " -"there is an `inline keyboard " -"`_ attached to " -"the message. Will be also received in `callback queries " -"`_ and can be used to " -"`edit `_ the " -"message." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/contact.po b/docs/locale/en/LC_MESSAGES/api/types/contact.po deleted file mode 100644 index 7e9f5102..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/contact.po +++ /dev/null @@ -1,57 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/contact.rst:3 -msgid "Contact" -msgstr "" - -#: aiogram.types.contact.Contact:1 of -msgid "This object represents a phone contact." -msgstr "" - -#: aiogram.types.contact.Contact:3 of -msgid "Source: https://core.telegram.org/bots/api#contact" -msgstr "" - -#: ../../docstring aiogram.types.contact.Contact.phone_number:1 of -msgid "Contact's phone number" -msgstr "" - -#: ../../docstring aiogram.types.contact.Contact.first_name:1 of -msgid "Contact's first name" -msgstr "" - -#: ../../docstring aiogram.types.contact.Contact.last_name:1 of -msgid "*Optional*. Contact's last name" -msgstr "" - -#: ../../docstring aiogram.types.contact.Contact.user_id:1 of -msgid "" -"*Optional*. Contact's user identifier in Telegram. This number may have " -"more than 32 significant bits and some programming languages may have " -"difficulty/silent defects in interpreting it. But it has at most 52 " -"significant bits, so a 64-bit integer or double-precision float type are " -"safe for storing this identifier." -msgstr "" - -#: ../../docstring aiogram.types.contact.Contact.vcard:1 of -msgid "" -"*Optional*. Additional data about the contact in the form of a `vCard " -"`_" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/dice.po b/docs/locale/en/LC_MESSAGES/api/types/dice.po deleted file mode 100644 index 55baf589..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/dice.po +++ /dev/null @@ -1,40 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/dice.rst:3 -msgid "Dice" -msgstr "" - -#: aiogram.types.dice.Dice:1 of -msgid "This object represents an animated emoji that displays a random value." -msgstr "" - -#: aiogram.types.dice.Dice:3 of -msgid "Source: https://core.telegram.org/bots/api#dice" -msgstr "" - -#: ../../docstring aiogram.types.dice.Dice.emoji:1 of -msgid "Emoji on which the dice throw animation is based" -msgstr "" - -#: ../../docstring aiogram.types.dice.Dice.value:1 of -msgid "" -"Value of the dice, 1-6 for '🎲', '🎯' and '🎳' base emoji, 1-5 for '🏀' and " -"'⚽' base emoji, 1-64 for '🎰' base emoji" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/document.po b/docs/locale/en/LC_MESSAGES/api/types/document.po deleted file mode 100644 index 0295a948..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/document.po +++ /dev/null @@ -1,64 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/document.rst:3 -msgid "Document" -msgstr "" - -#: aiogram.types.document.Document:1 of -msgid "" -"This object represents a general file (as opposed to `photos " -"`_, `voice messages " -"`_ and `audio files " -"`_)." -msgstr "" - -#: aiogram.types.document.Document:3 of -msgid "Source: https://core.telegram.org/bots/api#document" -msgstr "" - -#: ../../docstring aiogram.types.document.Document.file_id:1 of -msgid "Identifier for this file, which can be used to download or reuse the file" -msgstr "" - -#: ../../docstring aiogram.types.document.Document.file_unique_id:1 of -msgid "" -"Unique identifier for this file, which is supposed to be the same over " -"time and for different bots. Can't be used to download or reuse the file." -msgstr "" - -#: ../../docstring aiogram.types.document.Document.thumb:1 of -msgid "*Optional*. Document thumbnail as defined by sender" -msgstr "" - -#: ../../docstring aiogram.types.document.Document.file_name:1 of -msgid "*Optional*. Original filename as defined by sender" -msgstr "" - -#: ../../docstring aiogram.types.document.Document.mime_type:1 of -msgid "*Optional*. MIME type of the file as defined by sender" -msgstr "" - -#: ../../docstring aiogram.types.document.Document.file_size:1 of -msgid "" -"*Optional*. File size in bytes. It can be bigger than 2^31 and some " -"programming languages may have difficulty/silent defects in interpreting " -"it. But it has at most 52 significant bits, so a signed 64-bit integer or" -" double-precision float type are safe for storing this value." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/encrypted_credentials.po b/docs/locale/en/LC_MESSAGES/api/types/encrypted_credentials.po deleted file mode 100644 index ef407694..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/encrypted_credentials.po +++ /dev/null @@ -1,56 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/encrypted_credentials.rst:3 -msgid "EncryptedCredentials" -msgstr "" - -#: aiogram.types.encrypted_credentials.EncryptedCredentials:1 of -msgid "" -"Describes data required for decrypting and authenticating " -":class:`aiogram.types.encrypted_passport_element.EncryptedPassportElement`." -" See the `Telegram Passport Documentation " -"`_ for a " -"complete description of the data decryption and authentication processes." -msgstr "" - -#: aiogram.types.encrypted_credentials.EncryptedCredentials:3 of -msgid "Source: https://core.telegram.org/bots/api#encryptedcredentials" -msgstr "" - -#: ../../docstring -#: aiogram.types.encrypted_credentials.EncryptedCredentials.data:1 of -msgid "" -"Base64-encoded encrypted JSON-serialized data with unique user's payload," -" data hashes and secrets required for " -":class:`aiogram.types.encrypted_passport_element.EncryptedPassportElement`" -" decryption and authentication" -msgstr "" - -#: ../../docstring -#: aiogram.types.encrypted_credentials.EncryptedCredentials.hash:1 of -msgid "Base64-encoded data hash for data authentication" -msgstr "" - -#: ../../docstring -#: aiogram.types.encrypted_credentials.EncryptedCredentials.secret:1 of -msgid "" -"Base64-encoded secret, encrypted with the bot's public RSA key, required " -"for data decryption" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/encrypted_passport_element.po b/docs/locale/en/LC_MESSAGES/api/types/encrypted_passport_element.po deleted file mode 100644 index d0a915ce..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/encrypted_passport_element.po +++ /dev/null @@ -1,126 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/encrypted_passport_element.rst:3 -msgid "EncryptedPassportElement" -msgstr "" - -#: aiogram.types.encrypted_passport_element.EncryptedPassportElement:1 of -msgid "" -"Describes documents or other Telegram Passport elements shared with the " -"bot by the user." -msgstr "" - -#: aiogram.types.encrypted_passport_element.EncryptedPassportElement:3 of -msgid "Source: https://core.telegram.org/bots/api#encryptedpassportelement" -msgstr "" - -#: ../../docstring -#: aiogram.types.encrypted_passport_element.EncryptedPassportElement.type:1 of -msgid "" -"Element type. One of 'personal_details', 'passport', 'driver_license', " -"'identity_card', 'internal_passport', 'address', 'utility_bill', " -"'bank_statement', 'rental_agreement', 'passport_registration', " -"'temporary_registration', 'phone_number', 'email'." -msgstr "" - -#: ../../docstring -#: aiogram.types.encrypted_passport_element.EncryptedPassportElement.hash:1 of -msgid "" -"Base64-encoded element hash for using in " -":class:`aiogram.types.passport_element_error_unspecified.PassportElementErrorUnspecified`" -msgstr "" - -#: ../../docstring -#: aiogram.types.encrypted_passport_element.EncryptedPassportElement.data:1 of -msgid "" -"*Optional*. Base64-encoded encrypted Telegram Passport element data " -"provided by the user, available for 'personal_details', 'passport', " -"'driver_license', 'identity_card', 'internal_passport' and 'address' " -"types. Can be decrypted and verified using the accompanying " -":class:`aiogram.types.encrypted_credentials.EncryptedCredentials`." -msgstr "" - -#: ../../docstring -#: aiogram.types.encrypted_passport_element.EncryptedPassportElement.phone_number:1 -#: of -msgid "" -"*Optional*. User's verified phone number, available only for " -"'phone_number' type" -msgstr "" - -#: ../../docstring -#: aiogram.types.encrypted_passport_element.EncryptedPassportElement.email:1 of -msgid "*Optional*. User's verified email address, available only for 'email' type" -msgstr "" - -#: ../../docstring -#: aiogram.types.encrypted_passport_element.EncryptedPassportElement.files:1 of -msgid "" -"*Optional*. Array of encrypted files with documents provided by the user," -" available for 'utility_bill', 'bank_statement', 'rental_agreement', " -"'passport_registration' and 'temporary_registration' types. Files can be " -"decrypted and verified using the accompanying " -":class:`aiogram.types.encrypted_credentials.EncryptedCredentials`." -msgstr "" - -#: ../../docstring -#: aiogram.types.encrypted_passport_element.EncryptedPassportElement.front_side:1 -#: of -msgid "" -"*Optional*. Encrypted file with the front side of the document, provided " -"by the user. Available for 'passport', 'driver_license', 'identity_card' " -"and 'internal_passport'. The file can be decrypted and verified using the" -" accompanying " -":class:`aiogram.types.encrypted_credentials.EncryptedCredentials`." -msgstr "" - -#: ../../docstring -#: aiogram.types.encrypted_passport_element.EncryptedPassportElement.reverse_side:1 -#: of -msgid "" -"*Optional*. Encrypted file with the reverse side of the document, " -"provided by the user. Available for 'driver_license' and 'identity_card'." -" The file can be decrypted and verified using the accompanying " -":class:`aiogram.types.encrypted_credentials.EncryptedCredentials`." -msgstr "" - -#: ../../docstring -#: aiogram.types.encrypted_passport_element.EncryptedPassportElement.selfie:1 -#: of -msgid "" -"*Optional*. Encrypted file with the selfie of the user holding a " -"document, provided by the user; available for 'passport', " -"'driver_license', 'identity_card' and 'internal_passport'. The file can " -"be decrypted and verified using the accompanying " -":class:`aiogram.types.encrypted_credentials.EncryptedCredentials`." -msgstr "" - -#: ../../docstring -#: aiogram.types.encrypted_passport_element.EncryptedPassportElement.translation:1 -#: of -msgid "" -"*Optional*. Array of encrypted files with translated versions of " -"documents provided by the user. Available if requested for 'passport', " -"'driver_license', 'identity_card', 'internal_passport', 'utility_bill', " -"'bank_statement', 'rental_agreement', 'passport_registration' and " -"'temporary_registration' types. Files can be decrypted and verified using" -" the accompanying " -":class:`aiogram.types.encrypted_credentials.EncryptedCredentials`." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/error_event.po b/docs/locale/en/LC_MESSAGES/api/types/error_event.po deleted file mode 100644 index fbaceb09..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/error_event.po +++ /dev/null @@ -1,40 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/error_event.rst:3 -msgid "ErrorEvent" -msgstr "" - -#: aiogram.types.error_event.ErrorEvent:1 of -msgid "" -"Internal event, should be used to receive errors while processing Updates" -" from Telegram" -msgstr "" - -#: aiogram.types.error_event.ErrorEvent:3 of -msgid "Source: https://core.telegram.org/bots/api#error-event" -msgstr "" - -#: ../../docstring aiogram.types.error_event.ErrorEvent.update:1 of -msgid "Received update" -msgstr "" - -#: ../../docstring aiogram.types.error_event.ErrorEvent.exception:1 of -msgid "Exception" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/file.po b/docs/locale/en/LC_MESSAGES/api/types/file.po deleted file mode 100644 index 7b0c0c2c..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/file.po +++ /dev/null @@ -1,65 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/file.rst:3 -msgid "File" -msgstr "" - -#: aiogram.types.file.File:1 of -msgid "" -"This object represents a file ready to be downloaded. The file can be " -"downloaded via the link " -":code:`https://api.telegram.org/file/bot/`. It is " -"guaranteed that the link will be valid for at least 1 hour. When the link" -" expires, a new one can be requested by calling " -":class:`aiogram.methods.get_file.GetFile`." -msgstr "" - -#: aiogram.types.file.File:3 of -msgid "The maximum file size to download is 20 MB" -msgstr "" - -#: aiogram.types.file.File:5 of -msgid "Source: https://core.telegram.org/bots/api#file" -msgstr "" - -#: ../../docstring aiogram.types.file.File.file_id:1 of -msgid "Identifier for this file, which can be used to download or reuse the file" -msgstr "" - -#: ../../docstring aiogram.types.file.File.file_unique_id:1 of -msgid "" -"Unique identifier for this file, which is supposed to be the same over " -"time and for different bots. Can't be used to download or reuse the file." -msgstr "" - -#: ../../docstring aiogram.types.file.File.file_size:1 of -msgid "" -"*Optional*. File size in bytes. It can be bigger than 2^31 and some " -"programming languages may have difficulty/silent defects in interpreting " -"it. But it has at most 52 significant bits, so a signed 64-bit integer or" -" double-precision float type are safe for storing this value." -msgstr "" - -#: ../../docstring aiogram.types.file.File.file_path:1 of -msgid "" -"*Optional*. File path. Use " -":code:`https://api.telegram.org/file/bot/` to get the " -"file." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/force_reply.po b/docs/locale/en/LC_MESSAGES/api/types/force_reply.po deleted file mode 100644 index 6e408b99..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/force_reply.po +++ /dev/null @@ -1,98 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/force_reply.rst:3 -msgid "ForceReply" -msgstr "" - -#: aiogram.types.force_reply.ForceReply:1 of -msgid "" -"Upon receiving a message with this object, Telegram clients will display " -"a reply interface to the user (act as if the user has selected the bot's " -"message and tapped 'Reply'). This can be extremely useful if you want to " -"create user-friendly step-by-step interfaces without having to sacrifice " -"`privacy mode `_." -msgstr "" - -#: aiogram.types.force_reply.ForceReply:3 of -msgid "" -"**Example:** A `poll bot `_ for groups runs in " -"privacy mode (only receives commands, replies to its messages and " -"mentions). There could be two ways to create a new poll:" -msgstr "" - -#: aiogram.types.force_reply.ForceReply:5 of -msgid "" -"Explain the user how to send a command with parameters (e.g. /newpoll " -"question answer1 answer2). May be appealing for hardcore users but lacks " -"modern day polish." -msgstr "" - -#: aiogram.types.force_reply.ForceReply:6 of -msgid "" -"Guide the user through a step-by-step process. 'Please send me your " -"question', 'Cool, now let's add the first answer option', 'Great. Keep " -"adding answer options, then send /done when you're ready'." -msgstr "" - -#: aiogram.types.force_reply.ForceReply:8 of -msgid "" -"The last option is definitely more attractive. And if you use " -":class:`aiogram.types.force_reply.ForceReply` in your bot's questions, it" -" will receive the user's answers even if it only receives replies, " -"commands and mentions - without any extra work for the user." -msgstr "" - -#: aiogram.types.force_reply.ForceReply:10 of -msgid "Source: https://core.telegram.org/bots/api#forcereply" -msgstr "" - -#: ../../docstring aiogram.types.force_reply.ForceReply.force_reply:1 of -msgid "" -"Shows reply interface to the user, as if they manually selected the bot's" -" message and tapped 'Reply'" -msgstr "" - -#: ../../docstring -#: aiogram.types.force_reply.ForceReply.input_field_placeholder:1 of -msgid "" -"*Optional*. The placeholder to be shown in the input field when the reply" -" is active; 1-64 characters" -msgstr "" - -#: ../../docstring aiogram.types.force_reply.ForceReply.selective:1 of -msgid "" -"*Optional*. Use this parameter if you want to force reply from specific " -"users only. Targets: 1) users that are @mentioned in the *text* of the " -":class:`aiogram.types.message.Message` object; 2) if the bot's message is" -" a reply (has *reply_to_message_id*), sender of the original message." -msgstr "" - -#~ msgid "" -#~ "Upon receiving a message with this " -#~ "object, Telegram clients will display a" -#~ " reply interface to the user (act " -#~ "as if the user has selected the" -#~ " bot's message and tapped 'Reply'). " -#~ "This can be extremely useful if " -#~ "you want to create user-friendly " -#~ "step-by-step interfaces without having " -#~ "to sacrifice `privacy mode " -#~ "`_." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/forum_topic.po b/docs/locale/en/LC_MESSAGES/api/types/forum_topic.po deleted file mode 100644 index c59c0698..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/forum_topic.po +++ /dev/null @@ -1,47 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/forum_topic.rst:3 -msgid "ForumTopic" -msgstr "" - -#: aiogram.types.forum_topic.ForumTopic:1 of -msgid "This object represents a forum topic." -msgstr "" - -#: aiogram.types.forum_topic.ForumTopic:3 of -msgid "Source: https://core.telegram.org/bots/api#forumtopic" -msgstr "" - -#: ../../docstring aiogram.types.forum_topic.ForumTopic.message_thread_id:1 of -msgid "Unique identifier of the forum topic" -msgstr "" - -#: ../../docstring aiogram.types.forum_topic.ForumTopic.name:1 of -msgid "Name of the topic" -msgstr "" - -#: ../../docstring aiogram.types.forum_topic.ForumTopic.icon_color:1 of -msgid "Color of the topic icon in RGB format" -msgstr "" - -#: ../../docstring aiogram.types.forum_topic.ForumTopic.icon_custom_emoji_id:1 -#: of -msgid "*Optional*. Unique identifier of the custom emoji shown as the topic icon" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/forum_topic_closed.po b/docs/locale/en/LC_MESSAGES/api/types/forum_topic_closed.po deleted file mode 100644 index 9fadeb3d..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/forum_topic_closed.po +++ /dev/null @@ -1,32 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/forum_topic_closed.rst:3 -msgid "ForumTopicClosed" -msgstr "" - -#: aiogram.types.forum_topic_closed.ForumTopicClosed:1 of -msgid "" -"This object represents a service message about a forum topic closed in " -"the chat. Currently holds no information." -msgstr "" - -#: aiogram.types.forum_topic_closed.ForumTopicClosed:3 of -msgid "Source: https://core.telegram.org/bots/api#forumtopicclosed" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/forum_topic_created.po b/docs/locale/en/LC_MESSAGES/api/types/forum_topic_created.po deleted file mode 100644 index 59855d81..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/forum_topic_created.po +++ /dev/null @@ -1,48 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/forum_topic_created.rst:3 -msgid "ForumTopicCreated" -msgstr "" - -#: aiogram.types.forum_topic_created.ForumTopicCreated:1 of -msgid "" -"This object represents a service message about a new forum topic created " -"in the chat." -msgstr "" - -#: aiogram.types.forum_topic_created.ForumTopicCreated:3 of -msgid "Source: https://core.telegram.org/bots/api#forumtopiccreated" -msgstr "" - -#: ../../docstring aiogram.types.forum_topic_created.ForumTopicCreated.name:1 -#: of -msgid "Name of the topic" -msgstr "" - -#: ../../docstring -#: aiogram.types.forum_topic_created.ForumTopicCreated.icon_color:1 of -msgid "Color of the topic icon in RGB format" -msgstr "" - -#: ../../docstring -#: aiogram.types.forum_topic_created.ForumTopicCreated.icon_custom_emoji_id:1 -#: of -msgid "*Optional*. Unique identifier of the custom emoji shown as the topic icon" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/forum_topic_edited.po b/docs/locale/en/LC_MESSAGES/api/types/forum_topic_edited.po deleted file mode 100644 index 26fe021a..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/forum_topic_edited.po +++ /dev/null @@ -1,41 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/forum_topic_edited.rst:3 -msgid "ForumTopicEdited" -msgstr "" - -#: aiogram.types.forum_topic_edited.ForumTopicEdited:1 of -msgid "This object represents a service message about an edited forum topic." -msgstr "" - -#: aiogram.types.forum_topic_edited.ForumTopicEdited:3 of -msgid "Source: https://core.telegram.org/bots/api#forumtopicedited" -msgstr "" - -#: ../../docstring aiogram.types.forum_topic_edited.ForumTopicEdited.name:1 of -msgid "*Optional*. New name of the topic, if it was edited" -msgstr "" - -#: ../../docstring -#: aiogram.types.forum_topic_edited.ForumTopicEdited.icon_custom_emoji_id:1 of -msgid "" -"*Optional*. New identifier of the custom emoji shown as the topic icon, " -"if it was edited; an empty string if the icon was removed" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/forum_topic_reopened.po b/docs/locale/en/LC_MESSAGES/api/types/forum_topic_reopened.po deleted file mode 100644 index 0d202ed8..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/forum_topic_reopened.po +++ /dev/null @@ -1,32 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/forum_topic_reopened.rst:3 -msgid "ForumTopicReopened" -msgstr "" - -#: aiogram.types.forum_topic_reopened.ForumTopicReopened:1 of -msgid "" -"This object represents a service message about a forum topic reopened in " -"the chat. Currently holds no information." -msgstr "" - -#: aiogram.types.forum_topic_reopened.ForumTopicReopened:3 of -msgid "Source: https://core.telegram.org/bots/api#forumtopicreopened" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/game.po b/docs/locale/en/LC_MESSAGES/api/types/game.po deleted file mode 100644 index 2e2df85b..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/game.po +++ /dev/null @@ -1,66 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/game.rst:3 -msgid "Game" -msgstr "" - -#: aiogram.types.game.Game:1 of -msgid "" -"This object represents a game. Use BotFather to create and edit games, " -"their short names will act as unique identifiers." -msgstr "" - -#: aiogram.types.game.Game:3 of -msgid "Source: https://core.telegram.org/bots/api#game" -msgstr "" - -#: ../../docstring aiogram.types.game.Game.title:1 of -msgid "Title of the game" -msgstr "" - -#: ../../docstring aiogram.types.game.Game.description:1 of -msgid "Description of the game" -msgstr "" - -#: ../../docstring aiogram.types.game.Game.photo:1 of -msgid "Photo that will be displayed in the game message in chats." -msgstr "" - -#: ../../docstring aiogram.types.game.Game.text:1 of -msgid "" -"*Optional*. Brief description of the game or high scores included in the " -"game message. Can be automatically edited to include current high scores " -"for the game when the bot calls " -":class:`aiogram.methods.set_game_score.SetGameScore`, or manually edited " -"using :class:`aiogram.methods.edit_message_text.EditMessageText`. 0-4096 " -"characters." -msgstr "" - -#: ../../docstring aiogram.types.game.Game.text_entities:1 of -msgid "" -"*Optional*. Special entities that appear in *text*, such as usernames, " -"URLs, bot commands, etc." -msgstr "" - -#: ../../docstring aiogram.types.game.Game.animation:1 of -msgid "" -"*Optional*. Animation that will be displayed in the game message in " -"chats. Upload via `BotFather `_" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/game_high_score.po b/docs/locale/en/LC_MESSAGES/api/types/game_high_score.po deleted file mode 100644 index bcfb27bd..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/game_high_score.po +++ /dev/null @@ -1,51 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/game_high_score.rst:3 -msgid "GameHighScore" -msgstr "" - -#: aiogram.types.game_high_score.GameHighScore:1 of -msgid "" -"This object represents one row of the high scores table for a game. And " -"that's about all we've got for now." -msgstr "" - -#: aiogram.types.game_high_score.GameHighScore:4 of -msgid "" -"If you've got any questions, please check out our " -"`https://core.telegram.org/bots/faq " -"`_ **Bot FAQ »**" -msgstr "" - -#: aiogram.types.game_high_score.GameHighScore:6 of -msgid "Source: https://core.telegram.org/bots/api#gamehighscore" -msgstr "" - -#: ../../docstring aiogram.types.game_high_score.GameHighScore.position:1 of -msgid "Position in high score table for the game" -msgstr "" - -#: ../../docstring aiogram.types.game_high_score.GameHighScore.user:1 of -msgid "User" -msgstr "" - -#: ../../docstring aiogram.types.game_high_score.GameHighScore.score:1 of -msgid "Score" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/general_forum_topic_hidden.po b/docs/locale/en/LC_MESSAGES/api/types/general_forum_topic_hidden.po deleted file mode 100644 index 0cb7dbe1..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/general_forum_topic_hidden.po +++ /dev/null @@ -1,32 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/general_forum_topic_hidden.rst:3 -msgid "GeneralForumTopicHidden" -msgstr "" - -#: aiogram.types.general_forum_topic_hidden.GeneralForumTopicHidden:1 of -msgid "" -"This object represents a service message about General forum topic hidden" -" in the chat. Currently holds no information." -msgstr "" - -#: aiogram.types.general_forum_topic_hidden.GeneralForumTopicHidden:3 of -msgid "Source: https://core.telegram.org/bots/api#generalforumtopichidden" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/general_forum_topic_unhidden.po b/docs/locale/en/LC_MESSAGES/api/types/general_forum_topic_unhidden.po deleted file mode 100644 index 84782543..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/general_forum_topic_unhidden.po +++ /dev/null @@ -1,32 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/general_forum_topic_unhidden.rst:3 -msgid "GeneralForumTopicUnhidden" -msgstr "" - -#: aiogram.types.general_forum_topic_unhidden.GeneralForumTopicUnhidden:1 of -msgid "" -"This object represents a service message about General forum topic " -"unhidden in the chat. Currently holds no information." -msgstr "" - -#: aiogram.types.general_forum_topic_unhidden.GeneralForumTopicUnhidden:3 of -msgid "Source: https://core.telegram.org/bots/api#generalforumtopicunhidden" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/index.po b/docs/locale/en/LC_MESSAGES/api/types/index.po deleted file mode 100644 index 8ee34c1a..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/index.po +++ /dev/null @@ -1,61 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/index.rst:3 -msgid "Types" -msgstr "" - -#: ../../api/types/index.rst:5 -msgid "Here is list of all available API types:" -msgstr "" - -#: ../../api/types/index.rst:9 -msgid "Inline mode" -msgstr "" - -#: ../../api/types/index.rst:46 -msgid "Available types" -msgstr "" - -#: ../../api/types/index.rst:134 -msgid "Telegram Passport" -msgstr "" - -#: ../../api/types/index.rst:155 -msgid "Getting updates" -msgstr "" - -#: ../../api/types/index.rst:164 -msgid "Stickers" -msgstr "" - -#: ../../api/types/index.rst:174 -msgid "Payments" -msgstr "" - -#: ../../api/types/index.rst:189 -msgid "Games" -msgstr "" - -#: ../../api/types/index.rst:199 -msgid "Internals" -msgstr "" - -#~ msgid "Internal events" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_keyboard_button.po b/docs/locale/en/LC_MESSAGES/api/types/inline_keyboard_button.po deleted file mode 100644 index 7e6bedbe..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_keyboard_button.po +++ /dev/null @@ -1,106 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_keyboard_button.rst:3 -msgid "InlineKeyboardButton" -msgstr "" - -#: aiogram.types.inline_keyboard_button.InlineKeyboardButton:1 of -msgid "" -"This object represents one button of an inline keyboard. You **must** use" -" exactly one of the optional fields." -msgstr "" - -#: aiogram.types.inline_keyboard_button.InlineKeyboardButton:3 of -msgid "Source: https://core.telegram.org/bots/api#inlinekeyboardbutton" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_keyboard_button.InlineKeyboardButton.text:1 of -msgid "Label text on the button" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_keyboard_button.InlineKeyboardButton.url:1 of -msgid "" -"*Optional*. HTTP or tg:// URL to be opened when the button is pressed. " -"Links :code:`tg://user?id=` can be used to mention a user by " -"their ID without using a username, if this is allowed by their privacy " -"settings." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_keyboard_button.InlineKeyboardButton.callback_data:1 of -msgid "" -"*Optional*. Data to be sent in a `callback query " -"`_ to the bot when " -"button is pressed, 1-64 bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_keyboard_button.InlineKeyboardButton.web_app:1 of -msgid "" -"*Optional*. 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`. " -"Available only in private chats between a user and the bot." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_keyboard_button.InlineKeyboardButton.login_url:1 of -msgid "" -"*Optional*. An HTTPS URL used to automatically authorize the user. Can be" -" used as a replacement for the `Telegram Login Widget " -"`_." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_keyboard_button.InlineKeyboardButton.switch_inline_query:1 -#: of -msgid "" -"*Optional*. If set, pressing the button will prompt the user to select " -"one of their chats, open that chat and insert the bot's username and the " -"specified inline query in the input field. May be empty, in which case " -"just the bot's username will be inserted." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_keyboard_button.InlineKeyboardButton.switch_inline_query_current_chat:1 -#: of -msgid "" -"*Optional*. If set, pressing the button will insert the bot's username " -"and the specified inline query in the current chat's input field. May be " -"empty, in which case only the bot's username will be inserted." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_keyboard_button.InlineKeyboardButton.callback_game:1 of -msgid "" -"*Optional*. Description of the game that will be launched when the user " -"presses the button." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_keyboard_button.InlineKeyboardButton.pay:1 of -msgid "" -"*Optional*. Specify :code:`True`, to send a `Pay button " -"`_." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_keyboard_markup.po b/docs/locale/en/LC_MESSAGES/api/types/inline_keyboard_markup.po deleted file mode 100644 index b516034d..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_keyboard_markup.po +++ /dev/null @@ -1,56 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_keyboard_markup.rst:3 -msgid "InlineKeyboardMarkup" -msgstr "" - -#: aiogram.types.inline_keyboard_markup.InlineKeyboardMarkup:1 of -msgid "" -"This object represents an `inline keyboard " -"`_ that appears" -" right next to the message it belongs to. **Note:** This will only work " -"in Telegram versions released after 9 April, 2016. Older clients will " -"display *unsupported message*." -msgstr "" - -#: aiogram.types.inline_keyboard_markup.InlineKeyboardMarkup:4 of -msgid "Source: https://core.telegram.org/bots/api#inlinekeyboardmarkup" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_keyboard_markup.InlineKeyboardMarkup.inline_keyboard:1 -#: of -msgid "" -"Array of button rows, each represented by an Array of " -":class:`aiogram.types.inline_keyboard_button.InlineKeyboardButton` " -"objects" -msgstr "" - -#~ msgid "" -#~ "This object represents an `inline " -#~ "keyboard `_ " -#~ "that appears right next to the " -#~ "message it belongs to. **Note:** This" -#~ " will only work in Telegram versions" -#~ " released after 9 April, 2016. Older" -#~ " clients will display *unsupported " -#~ "message*." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_query.po b/docs/locale/en/LC_MESSAGES/api/types/inline_query.po deleted file mode 100644 index 4146b049..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_query.po +++ /dev/null @@ -1,140 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_query.rst:3 -msgid "InlineQuery" -msgstr "" - -#: aiogram.types.inline_query.InlineQuery:1 of -msgid "" -"This object represents an incoming inline query. When the user sends an " -"empty query, your bot could return some default or trending results." -msgstr "" - -#: aiogram.types.inline_query.InlineQuery:3 of -msgid "Source: https://core.telegram.org/bots/api#inlinequery" -msgstr "" - -#: ../../docstring aiogram.types.inline_query.InlineQuery.id:1 of -msgid "Unique identifier for this query" -msgstr "" - -#: ../../docstring aiogram.types.inline_query.InlineQuery.from_user:1 of -msgid "Sender" -msgstr "" - -#: ../../docstring aiogram.types.inline_query.InlineQuery.query:1 of -msgid "Text of the query (up to 256 characters)" -msgstr "" - -#: ../../docstring aiogram.types.inline_query.InlineQuery.offset:1 of -msgid "Offset of the results to be returned, can be controlled by the bot" -msgstr "" - -#: ../../docstring aiogram.types.inline_query.InlineQuery.chat_type:1 of -msgid "" -"*Optional*. Type of the chat from which the inline query was sent. Can be" -" either 'sender' for a private chat with the inline query sender, " -"'private', 'group', 'supergroup', or 'channel'. The chat type should be " -"always known for requests sent from official clients and most third-party" -" clients, unless the request was sent from a secret chat" -msgstr "" - -#: ../../docstring aiogram.types.inline_query.InlineQuery.location:1 of -msgid "*Optional*. Sender location, only for bots that request user location" -msgstr "" - -#: aiogram.types.inline_query.InlineQuery.answer:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.answer_inline_query.AnswerInlineQuery` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.inline_query.InlineQuery.answer:4 of -msgid ":code:`inline_query_id`" -msgstr "" - -#: aiogram.types.inline_query.InlineQuery.answer:6 of -msgid "" -"Use this method to send answers to an inline query. On success, " -":code:`True` is returned." -msgstr "" - -#: aiogram.types.inline_query.InlineQuery.answer:8 of -msgid "No more than **50** results per query are allowed." -msgstr "" - -#: aiogram.types.inline_query.InlineQuery.answer:10 of -msgid "Source: https://core.telegram.org/bots/api#answerinlinequery" -msgstr "" - -#: aiogram.types.inline_query.InlineQuery.answer of -msgid "Parameters" -msgstr "" - -#: aiogram.types.inline_query.InlineQuery.answer:12 of -msgid "A JSON-serialized array of results for the inline query" -msgstr "" - -#: aiogram.types.inline_query.InlineQuery.answer:13 of -msgid "" -"The maximum amount of time in seconds that the result of the inline query" -" may be cached on the server. Defaults to 300." -msgstr "" - -#: aiogram.types.inline_query.InlineQuery.answer:14 of -msgid "" -"Pass :code:`True` if results may be cached on the server side only for " -"the user that sent the query. By default, results may be returned to any " -"user who sends the same query" -msgstr "" - -#: aiogram.types.inline_query.InlineQuery.answer:15 of -msgid "" -"Pass the offset that a client should send in the next query with the same" -" text to receive more results. Pass an empty string if there are no more " -"results or if you don't support pagination. Offset length can't exceed 64" -" bytes." -msgstr "" - -#: aiogram.types.inline_query.InlineQuery.answer:16 of -msgid "" -"If passed, clients will display a button with specified text that " -"switches the user to a private chat with the bot and sends the bot a " -"start message with the parameter *switch_pm_parameter*" -msgstr "" - -#: aiogram.types.inline_query.InlineQuery.answer:17 of -msgid "" -"`Deep-linking `_ " -"parameter for the /start message sent to the bot when user presses the " -"switch button. 1-64 characters, only :code:`A-Z`, :code:`a-z`, " -":code:`0-9`, :code:`_` and :code:`-` are allowed." -msgstr "" - -#: aiogram.types.inline_query.InlineQuery.answer of -msgid "Returns" -msgstr "" - -#: aiogram.types.inline_query.InlineQuery.answer:18 of -msgid "" -"instance of method " -":class:`aiogram.methods.answer_inline_query.AnswerInlineQuery`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result.po b/docs/locale/en/LC_MESSAGES/api/types/inline_query_result.po deleted file mode 100644 index e5213929..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result.po +++ /dev/null @@ -1,118 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_query_result.rst:3 -msgid "InlineQueryResult" -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:1 of -msgid "" -"This object represents one result of an inline query. Telegram clients " -"currently support results of the following 20 types:" -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:3 of -msgid ":class:`aiogram.types.inline_query_result_cached_audio.InlineQueryResultCachedAudio`" -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:4 of -msgid ":class:`aiogram.types.inline_query_result_cached_document.InlineQueryResultCachedDocument`" -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:5 of -msgid ":class:`aiogram.types.inline_query_result_cached_gif.InlineQueryResultCachedGif`" -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:6 of -msgid ":class:`aiogram.types.inline_query_result_cached_mpeg4_gif.InlineQueryResultCachedMpeg4Gif`" -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:7 of -msgid ":class:`aiogram.types.inline_query_result_cached_photo.InlineQueryResultCachedPhoto`" -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:8 of -msgid ":class:`aiogram.types.inline_query_result_cached_sticker.InlineQueryResultCachedSticker`" -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:9 of -msgid ":class:`aiogram.types.inline_query_result_cached_video.InlineQueryResultCachedVideo`" -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:10 of -msgid ":class:`aiogram.types.inline_query_result_cached_voice.InlineQueryResultCachedVoice`" -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:11 of -msgid ":class:`aiogram.types.inline_query_result_article.InlineQueryResultArticle`" -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:12 of -msgid ":class:`aiogram.types.inline_query_result_audio.InlineQueryResultAudio`" -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:13 of -msgid ":class:`aiogram.types.inline_query_result_contact.InlineQueryResultContact`" -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:14 of -msgid ":class:`aiogram.types.inline_query_result_game.InlineQueryResultGame`" -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:15 of -msgid ":class:`aiogram.types.inline_query_result_document.InlineQueryResultDocument`" -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:16 of -msgid ":class:`aiogram.types.inline_query_result_gif.InlineQueryResultGif`" -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:17 of -msgid ":class:`aiogram.types.inline_query_result_location.InlineQueryResultLocation`" -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:18 of -msgid ":class:`aiogram.types.inline_query_result_mpeg4_gif.InlineQueryResultMpeg4Gif`" -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:19 of -msgid ":class:`aiogram.types.inline_query_result_photo.InlineQueryResultPhoto`" -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:20 of -msgid ":class:`aiogram.types.inline_query_result_venue.InlineQueryResultVenue`" -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:21 of -msgid ":class:`aiogram.types.inline_query_result_video.InlineQueryResultVideo`" -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:22 of -msgid ":class:`aiogram.types.inline_query_result_voice.InlineQueryResultVoice`" -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:24 of -msgid "" -"**Note:** All URLs passed in inline query results will be available to " -"end users and therefore must be assumed to be **public**." -msgstr "" - -#: aiogram.types.inline_query_result.InlineQueryResult:26 of -msgid "Source: https://core.telegram.org/bots/api#inlinequeryresult" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_article.po b/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_article.po deleted file mode 100644 index 6615989c..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_article.po +++ /dev/null @@ -1,104 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_query_result_article.rst:3 -msgid "InlineQueryResultArticle" -msgstr "" - -#: aiogram.types.inline_query_result_article.InlineQueryResultArticle:1 of -msgid "Represents a link to an article or web page." -msgstr "" - -#: aiogram.types.inline_query_result_article.InlineQueryResultArticle:3 of -msgid "Source: https://core.telegram.org/bots/api#inlinequeryresultarticle" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_article.InlineQueryResultArticle.type:1 of -msgid "Type of the result, must be *article*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_article.InlineQueryResultArticle.id:1 of -msgid "Unique identifier for this result, 1-64 Bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_article.InlineQueryResultArticle.title:1 -#: of -msgid "Title of the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_article.InlineQueryResultArticle.input_message_content:1 -#: of -msgid "Content of the message to be sent" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_article.InlineQueryResultArticle.reply_markup:1 -#: of -msgid "" -"*Optional*. `Inline keyboard `_ attached to the message" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_article.InlineQueryResultArticle.url:1 of -msgid "*Optional*. URL of the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_article.InlineQueryResultArticle.hide_url:1 -#: of -msgid "" -"*Optional*. Pass :code:`True` if you don't want the URL to be shown in " -"the message" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_article.InlineQueryResultArticle.description:1 -#: of -msgid "*Optional*. Short description of the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_article.InlineQueryResultArticle.thumb_url:1 -#: of -msgid "*Optional*. Url of the thumbnail for the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_article.InlineQueryResultArticle.thumb_width:1 -#: of -msgid "*Optional*. Thumbnail width" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_article.InlineQueryResultArticle.thumb_height:1 -#: of -msgid "*Optional*. Thumbnail height" -msgstr "" - -#~ msgid "" -#~ "*Optional*. `Inline keyboard " -#~ "`_ attached to " -#~ "the message" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_audio.po b/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_audio.po deleted file mode 100644 index 9ee8ea87..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_audio.po +++ /dev/null @@ -1,111 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_query_result_audio.rst:3 -msgid "InlineQueryResultAudio" -msgstr "" - -#: aiogram.types.inline_query_result_audio.InlineQueryResultAudio:1 of -msgid "" -"Represents a link to an MP3 audio file. By default, this audio file will " -"be sent by the user. Alternatively, you can use *input_message_content* " -"to send a message with the specified content instead of the audio. " -"**Note:** This will only work in Telegram versions released after 9 " -"April, 2016. Older clients will ignore them." -msgstr "" - -#: aiogram.types.inline_query_result_audio.InlineQueryResultAudio:4 of -msgid "Source: https://core.telegram.org/bots/api#inlinequeryresultaudio" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_audio.InlineQueryResultAudio.type:1 of -msgid "Type of the result, must be *audio*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_audio.InlineQueryResultAudio.id:1 of -msgid "Unique identifier for this result, 1-64 bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_audio.InlineQueryResultAudio.audio_url:1 -#: of -msgid "A valid URL for the audio file" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_audio.InlineQueryResultAudio.title:1 of -msgid "Title" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_audio.InlineQueryResultAudio.caption:1 of -msgid "*Optional*. Caption, 0-1024 characters after entities parsing" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_audio.InlineQueryResultAudio.parse_mode:1 -#: of -msgid "" -"*Optional*. Mode for parsing entities in the audio caption. See " -"`formatting options `_ for more details." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_audio.InlineQueryResultAudio.caption_entities:1 -#: of -msgid "" -"*Optional*. List of special entities that appear in the caption, which " -"can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_audio.InlineQueryResultAudio.performer:1 -#: of -msgid "*Optional*. Performer" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_audio.InlineQueryResultAudio.audio_duration:1 -#: of -msgid "*Optional*. Audio duration in seconds" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_audio.InlineQueryResultAudio.reply_markup:1 -#: of -msgid "" -"*Optional*. `Inline keyboard `_ attached to the message" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_audio.InlineQueryResultAudio.input_message_content:1 -#: of -msgid "*Optional*. Content of the message to be sent instead of the audio" -msgstr "" - -#~ msgid "" -#~ "*Optional*. `Inline keyboard " -#~ "`_ attached to " -#~ "the message" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_audio.po b/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_audio.po deleted file mode 100644 index 5accdb13..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_audio.po +++ /dev/null @@ -1,99 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_query_result_cached_audio.rst:3 -msgid "InlineQueryResultCachedAudio" -msgstr "" - -#: aiogram.types.inline_query_result_cached_audio.InlineQueryResultCachedAudio:1 -#: of -msgid "" -"Represents a link to an MP3 audio file stored on the Telegram servers. By" -" default, this audio file will be sent by the user. Alternatively, you " -"can use *input_message_content* to send a message with the specified " -"content instead of the audio. **Note:** This will only work in Telegram " -"versions released after 9 April, 2016. Older clients will ignore them." -msgstr "" - -#: aiogram.types.inline_query_result_cached_audio.InlineQueryResultCachedAudio:4 -#: of -msgid "Source: https://core.telegram.org/bots/api#inlinequeryresultcachedaudio" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_audio.InlineQueryResultCachedAudio.type:1 -#: of -msgid "Type of the result, must be *audio*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_audio.InlineQueryResultCachedAudio.id:1 -#: of -msgid "Unique identifier for this result, 1-64 bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_audio.InlineQueryResultCachedAudio.audio_file_id:1 -#: of -msgid "A valid file identifier for the audio file" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_audio.InlineQueryResultCachedAudio.caption:1 -#: of -msgid "*Optional*. Caption, 0-1024 characters after entities parsing" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_audio.InlineQueryResultCachedAudio.parse_mode:1 -#: of -msgid "" -"*Optional*. Mode for parsing entities in the audio caption. See " -"`formatting options `_ for more details." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_audio.InlineQueryResultCachedAudio.caption_entities:1 -#: of -msgid "" -"*Optional*. List of special entities that appear in the caption, which " -"can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_audio.InlineQueryResultCachedAudio.reply_markup:1 -#: of -msgid "" -"*Optional*. `Inline keyboard `_ attached to the message" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_audio.InlineQueryResultCachedAudio.input_message_content:1 -#: of -msgid "*Optional*. Content of the message to be sent instead of the audio" -msgstr "" - -#~ msgid "" -#~ "*Optional*. `Inline keyboard " -#~ "`_ attached to " -#~ "the message" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_document.po b/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_document.po deleted file mode 100644 index eb805a02..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_document.po +++ /dev/null @@ -1,114 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_query_result_cached_document.rst:3 -msgid "InlineQueryResultCachedDocument" -msgstr "" - -#: aiogram.types.inline_query_result_cached_document.InlineQueryResultCachedDocument:1 -#: of -msgid "" -"Represents a link to a file stored on the Telegram servers. By default, " -"this file will be sent by the user with an optional caption. " -"Alternatively, you can use *input_message_content* to send a message with" -" the specified content instead of the file. **Note:** This will only work" -" in Telegram versions released after 9 April, 2016. Older clients will " -"ignore them." -msgstr "" - -#: aiogram.types.inline_query_result_cached_document.InlineQueryResultCachedDocument:4 -#: of -msgid "Source: https://core.telegram.org/bots/api#inlinequeryresultcacheddocument" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_document.InlineQueryResultCachedDocument.type:1 -#: of -msgid "Type of the result, must be *document*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_document.InlineQueryResultCachedDocument.id:1 -#: of -msgid "Unique identifier for this result, 1-64 bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_document.InlineQueryResultCachedDocument.title:1 -#: of -msgid "Title for the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_document.InlineQueryResultCachedDocument.document_file_id:1 -#: of -msgid "A valid file identifier for the file" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_document.InlineQueryResultCachedDocument.description:1 -#: of -msgid "*Optional*. Short description of the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_document.InlineQueryResultCachedDocument.caption:1 -#: of -msgid "" -"*Optional*. Caption of the document to be sent, 0-1024 characters after " -"entities parsing" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_document.InlineQueryResultCachedDocument.parse_mode:1 -#: of -msgid "" -"*Optional*. Mode for parsing entities in the document caption. See " -"`formatting options `_ for more details." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_document.InlineQueryResultCachedDocument.caption_entities:1 -#: of -msgid "" -"*Optional*. List of special entities that appear in the caption, which " -"can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_document.InlineQueryResultCachedDocument.reply_markup:1 -#: of -msgid "" -"*Optional*. `Inline keyboard `_ attached to the message" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_document.InlineQueryResultCachedDocument.input_message_content:1 -#: of -msgid "*Optional*. Content of the message to be sent instead of the file" -msgstr "" - -#~ msgid "" -#~ "*Optional*. `Inline keyboard " -#~ "`_ attached to " -#~ "the message" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_gif.po b/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_gif.po deleted file mode 100644 index ffc4e8f0..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_gif.po +++ /dev/null @@ -1,104 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_query_result_cached_gif.rst:3 -msgid "InlineQueryResultCachedGif" -msgstr "" - -#: aiogram.types.inline_query_result_cached_gif.InlineQueryResultCachedGif:1 of -msgid "" -"Represents a link to an animated GIF file stored on the Telegram servers." -" By default, this animated GIF file will be sent by the user with an " -"optional caption. Alternatively, you can use *input_message_content* to " -"send a message with specified content instead of the animation." -msgstr "" - -#: aiogram.types.inline_query_result_cached_gif.InlineQueryResultCachedGif:3 of -msgid "Source: https://core.telegram.org/bots/api#inlinequeryresultcachedgif" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_gif.InlineQueryResultCachedGif.type:1 -#: of -msgid "Type of the result, must be *gif*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_gif.InlineQueryResultCachedGif.id:1 -#: of -msgid "Unique identifier for this result, 1-64 bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_gif.InlineQueryResultCachedGif.gif_file_id:1 -#: of -msgid "A valid file identifier for the GIF file" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_gif.InlineQueryResultCachedGif.title:1 -#: of -msgid "*Optional*. Title for the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_gif.InlineQueryResultCachedGif.caption:1 -#: of -msgid "" -"*Optional*. Caption of the GIF file to be sent, 0-1024 characters after " -"entities parsing" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_gif.InlineQueryResultCachedGif.parse_mode:1 -#: of -msgid "" -"*Optional*. Mode for parsing entities in the caption. See `formatting " -"options `_ for " -"more details." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_gif.InlineQueryResultCachedGif.caption_entities:1 -#: of -msgid "" -"*Optional*. List of special entities that appear in the caption, which " -"can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_gif.InlineQueryResultCachedGif.reply_markup:1 -#: of -msgid "" -"*Optional*. `Inline keyboard `_ attached to the message" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_gif.InlineQueryResultCachedGif.input_message_content:1 -#: of -msgid "*Optional*. Content of the message to be sent instead of the GIF animation" -msgstr "" - -#~ msgid "" -#~ "*Optional*. `Inline keyboard " -#~ "`_ attached to " -#~ "the message" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_mpeg4_gif.po b/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_mpeg4_gif.po deleted file mode 100644 index 96885946..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_mpeg4_gif.po +++ /dev/null @@ -1,109 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_query_result_cached_mpeg4_gif.rst:3 -msgid "InlineQueryResultCachedMpeg4Gif" -msgstr "" - -#: aiogram.types.inline_query_result_cached_mpeg4_gif.InlineQueryResultCachedMpeg4Gif:1 -#: of -msgid "" -"Represents a link to a video animation (H.264/MPEG-4 AVC video without " -"sound) stored on the Telegram servers. By default, this animated MPEG-4 " -"file will be sent by the user with an optional caption. Alternatively, " -"you can use *input_message_content* to send a message with the specified " -"content instead of the animation." -msgstr "" - -#: aiogram.types.inline_query_result_cached_mpeg4_gif.InlineQueryResultCachedMpeg4Gif:3 -#: of -msgid "Source: https://core.telegram.org/bots/api#inlinequeryresultcachedmpeg4gif" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_mpeg4_gif.InlineQueryResultCachedMpeg4Gif.type:1 -#: of -msgid "Type of the result, must be *mpeg4_gif*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_mpeg4_gif.InlineQueryResultCachedMpeg4Gif.id:1 -#: of -msgid "Unique identifier for this result, 1-64 bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_mpeg4_gif.InlineQueryResultCachedMpeg4Gif.mpeg4_file_id:1 -#: of -msgid "A valid file identifier for the MPEG4 file" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_mpeg4_gif.InlineQueryResultCachedMpeg4Gif.title:1 -#: of -msgid "*Optional*. Title for the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_mpeg4_gif.InlineQueryResultCachedMpeg4Gif.caption:1 -#: of -msgid "" -"*Optional*. Caption of the MPEG-4 file to be sent, 0-1024 characters " -"after entities parsing" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_mpeg4_gif.InlineQueryResultCachedMpeg4Gif.parse_mode:1 -#: of -msgid "" -"*Optional*. Mode for parsing entities in the caption. See `formatting " -"options `_ for " -"more details." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_mpeg4_gif.InlineQueryResultCachedMpeg4Gif.caption_entities:1 -#: of -msgid "" -"*Optional*. List of special entities that appear in the caption, which " -"can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_mpeg4_gif.InlineQueryResultCachedMpeg4Gif.reply_markup:1 -#: of -msgid "" -"*Optional*. `Inline keyboard `_ attached to the message" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_mpeg4_gif.InlineQueryResultCachedMpeg4Gif.input_message_content:1 -#: of -msgid "" -"*Optional*. Content of the message to be sent instead of the video " -"animation" -msgstr "" - -#~ msgid "" -#~ "*Optional*. `Inline keyboard " -#~ "`_ attached to " -#~ "the message" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_photo.po b/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_photo.po deleted file mode 100644 index 965f8ad7..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_photo.po +++ /dev/null @@ -1,112 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_query_result_cached_photo.rst:3 -msgid "InlineQueryResultCachedPhoto" -msgstr "" - -#: aiogram.types.inline_query_result_cached_photo.InlineQueryResultCachedPhoto:1 -#: of -msgid "" -"Represents a link to a photo stored on the Telegram servers. By default, " -"this photo will be sent by the user with an optional caption. " -"Alternatively, you can use *input_message_content* to send a message with" -" the specified content instead of the photo." -msgstr "" - -#: aiogram.types.inline_query_result_cached_photo.InlineQueryResultCachedPhoto:3 -#: of -msgid "Source: https://core.telegram.org/bots/api#inlinequeryresultcachedphoto" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_photo.InlineQueryResultCachedPhoto.type:1 -#: of -msgid "Type of the result, must be *photo*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_photo.InlineQueryResultCachedPhoto.id:1 -#: of -msgid "Unique identifier for this result, 1-64 bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_photo.InlineQueryResultCachedPhoto.photo_file_id:1 -#: of -msgid "A valid file identifier of the photo" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_photo.InlineQueryResultCachedPhoto.title:1 -#: of -msgid "*Optional*. Title for the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_photo.InlineQueryResultCachedPhoto.description:1 -#: of -msgid "*Optional*. Short description of the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_photo.InlineQueryResultCachedPhoto.caption:1 -#: of -msgid "" -"*Optional*. Caption of the photo to be sent, 0-1024 characters after " -"entities parsing" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_photo.InlineQueryResultCachedPhoto.parse_mode:1 -#: of -msgid "" -"*Optional*. Mode for parsing entities in the photo caption. See " -"`formatting options `_ for more details." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_photo.InlineQueryResultCachedPhoto.caption_entities:1 -#: of -msgid "" -"*Optional*. List of special entities that appear in the caption, which " -"can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_photo.InlineQueryResultCachedPhoto.reply_markup:1 -#: of -msgid "" -"*Optional*. `Inline keyboard `_ attached to the message" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_photo.InlineQueryResultCachedPhoto.input_message_content:1 -#: of -msgid "*Optional*. Content of the message to be sent instead of the photo" -msgstr "" - -#~ msgid "" -#~ "*Optional*. `Inline keyboard " -#~ "`_ attached to " -#~ "the message" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_sticker.po b/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_sticker.po deleted file mode 100644 index dc79cbca..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_sticker.po +++ /dev/null @@ -1,78 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_query_result_cached_sticker.rst:3 -msgid "InlineQueryResultCachedSticker" -msgstr "" - -#: aiogram.types.inline_query_result_cached_sticker.InlineQueryResultCachedSticker:1 -#: of -msgid "" -"Represents a link to a sticker stored on the Telegram servers. By " -"default, this sticker will be sent by the user. Alternatively, you can " -"use *input_message_content* to send a message with the specified content " -"instead of the sticker. **Note:** This will only work in Telegram " -"versions released after 9 April, 2016 for static stickers and after 06 " -"July, 2019 for `animated stickers `_. Older clients will ignore them." -msgstr "" - -#: aiogram.types.inline_query_result_cached_sticker.InlineQueryResultCachedSticker:4 -#: of -msgid "Source: https://core.telegram.org/bots/api#inlinequeryresultcachedsticker" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_sticker.InlineQueryResultCachedSticker.type:1 -#: of -msgid "Type of the result, must be *sticker*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_sticker.InlineQueryResultCachedSticker.id:1 -#: of -msgid "Unique identifier for this result, 1-64 bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_sticker.InlineQueryResultCachedSticker.sticker_file_id:1 -#: of -msgid "A valid file identifier of the sticker" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_sticker.InlineQueryResultCachedSticker.reply_markup:1 -#: of -msgid "" -"*Optional*. `Inline keyboard `_ attached to the message" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_sticker.InlineQueryResultCachedSticker.input_message_content:1 -#: of -msgid "*Optional*. Content of the message to be sent instead of the sticker" -msgstr "" - -#~ msgid "" -#~ "*Optional*. `Inline keyboard " -#~ "`_ attached to " -#~ "the message" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_video.po b/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_video.po deleted file mode 100644 index 3836cf30..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_video.po +++ /dev/null @@ -1,112 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_query_result_cached_video.rst:3 -msgid "InlineQueryResultCachedVideo" -msgstr "" - -#: aiogram.types.inline_query_result_cached_video.InlineQueryResultCachedVideo:1 -#: of -msgid "" -"Represents a link to a video file stored on the Telegram servers. By " -"default, this video file will be sent by the user with an optional " -"caption. Alternatively, you can use *input_message_content* to send a " -"message with the specified content instead of the video." -msgstr "" - -#: aiogram.types.inline_query_result_cached_video.InlineQueryResultCachedVideo:3 -#: of -msgid "Source: https://core.telegram.org/bots/api#inlinequeryresultcachedvideo" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_video.InlineQueryResultCachedVideo.type:1 -#: of -msgid "Type of the result, must be *video*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_video.InlineQueryResultCachedVideo.id:1 -#: of -msgid "Unique identifier for this result, 1-64 bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_video.InlineQueryResultCachedVideo.video_file_id:1 -#: of -msgid "A valid file identifier for the video file" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_video.InlineQueryResultCachedVideo.title:1 -#: of -msgid "Title for the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_video.InlineQueryResultCachedVideo.description:1 -#: of -msgid "*Optional*. Short description of the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_video.InlineQueryResultCachedVideo.caption:1 -#: of -msgid "" -"*Optional*. Caption of the video to be sent, 0-1024 characters after " -"entities parsing" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_video.InlineQueryResultCachedVideo.parse_mode:1 -#: of -msgid "" -"*Optional*. Mode for parsing entities in the video caption. See " -"`formatting options `_ for more details." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_video.InlineQueryResultCachedVideo.caption_entities:1 -#: of -msgid "" -"*Optional*. List of special entities that appear in the caption, which " -"can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_video.InlineQueryResultCachedVideo.reply_markup:1 -#: of -msgid "" -"*Optional*. `Inline keyboard `_ attached to the message" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_video.InlineQueryResultCachedVideo.input_message_content:1 -#: of -msgid "*Optional*. Content of the message to be sent instead of the video" -msgstr "" - -#~ msgid "" -#~ "*Optional*. `Inline keyboard " -#~ "`_ attached to " -#~ "the message" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_voice.po b/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_voice.po deleted file mode 100644 index d2bb9f10..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_cached_voice.po +++ /dev/null @@ -1,106 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_query_result_cached_voice.rst:3 -msgid "InlineQueryResultCachedVoice" -msgstr "" - -#: aiogram.types.inline_query_result_cached_voice.InlineQueryResultCachedVoice:1 -#: of -msgid "" -"Represents a link to a voice message stored on the Telegram servers. By " -"default, this voice message will be sent by the user. Alternatively, you " -"can use *input_message_content* to send a message with the specified " -"content instead of the voice message. **Note:** This will only work in " -"Telegram versions released after 9 April, 2016. Older clients will ignore" -" them." -msgstr "" - -#: aiogram.types.inline_query_result_cached_voice.InlineQueryResultCachedVoice:4 -#: of -msgid "Source: https://core.telegram.org/bots/api#inlinequeryresultcachedvoice" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_voice.InlineQueryResultCachedVoice.type:1 -#: of -msgid "Type of the result, must be *voice*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_voice.InlineQueryResultCachedVoice.id:1 -#: of -msgid "Unique identifier for this result, 1-64 bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_voice.InlineQueryResultCachedVoice.voice_file_id:1 -#: of -msgid "A valid file identifier for the voice message" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_voice.InlineQueryResultCachedVoice.title:1 -#: of -msgid "Voice message title" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_voice.InlineQueryResultCachedVoice.caption:1 -#: of -msgid "*Optional*. Caption, 0-1024 characters after entities parsing" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_voice.InlineQueryResultCachedVoice.parse_mode:1 -#: of -msgid "" -"*Optional*. Mode for parsing entities in the voice message caption. See " -"`formatting options `_ for more details." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_voice.InlineQueryResultCachedVoice.caption_entities:1 -#: of -msgid "" -"*Optional*. List of special entities that appear in the caption, which " -"can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_voice.InlineQueryResultCachedVoice.reply_markup:1 -#: of -msgid "" -"*Optional*. `Inline keyboard `_ attached to the message" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_cached_voice.InlineQueryResultCachedVoice.input_message_content:1 -#: of -msgid "*Optional*. Content of the message to be sent instead of the voice message" -msgstr "" - -#~ msgid "" -#~ "*Optional*. `Inline keyboard " -#~ "`_ attached to " -#~ "the message" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_contact.po b/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_contact.po deleted file mode 100644 index d9620a12..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_contact.po +++ /dev/null @@ -1,110 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_query_result_contact.rst:3 -msgid "InlineQueryResultContact" -msgstr "" - -#: aiogram.types.inline_query_result_contact.InlineQueryResultContact:1 of -msgid "" -"Represents a contact with a phone number. By default, this contact will " -"be sent by the user. Alternatively, you can use *input_message_content* " -"to send a message with the specified content instead of the contact. " -"**Note:** This will only work in Telegram versions released after 9 " -"April, 2016. Older clients will ignore them." -msgstr "" - -#: aiogram.types.inline_query_result_contact.InlineQueryResultContact:4 of -msgid "Source: https://core.telegram.org/bots/api#inlinequeryresultcontact" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_contact.InlineQueryResultContact.type:1 of -msgid "Type of the result, must be *contact*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_contact.InlineQueryResultContact.id:1 of -msgid "Unique identifier for this result, 1-64 Bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_contact.InlineQueryResultContact.phone_number:1 -#: of -msgid "Contact's phone number" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_contact.InlineQueryResultContact.first_name:1 -#: of -msgid "Contact's first name" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_contact.InlineQueryResultContact.last_name:1 -#: of -msgid "*Optional*. Contact's last name" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_contact.InlineQueryResultContact.vcard:1 -#: of -msgid "" -"*Optional*. Additional data about the contact in the form of a `vCard " -"`_, 0-2048 bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_contact.InlineQueryResultContact.reply_markup:1 -#: of -msgid "" -"*Optional*. `Inline keyboard `_ attached to the message" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_contact.InlineQueryResultContact.input_message_content:1 -#: of -msgid "*Optional*. Content of the message to be sent instead of the contact" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_contact.InlineQueryResultContact.thumb_url:1 -#: of -msgid "*Optional*. Url of the thumbnail for the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_contact.InlineQueryResultContact.thumb_width:1 -#: of -msgid "*Optional*. Thumbnail width" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_contact.InlineQueryResultContact.thumb_height:1 -#: of -msgid "*Optional*. Thumbnail height" -msgstr "" - -#~ msgid "" -#~ "*Optional*. `Inline keyboard " -#~ "`_ attached to " -#~ "the message" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_document.po b/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_document.po deleted file mode 100644 index 9931e7ee..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_document.po +++ /dev/null @@ -1,128 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_query_result_document.rst:3 -msgid "InlineQueryResultDocument" -msgstr "" - -#: aiogram.types.inline_query_result_document.InlineQueryResultDocument:1 of -msgid "" -"Represents a link to a file. By default, this file will be sent by the " -"user with an optional caption. Alternatively, you can use " -"*input_message_content* to send a message with the specified content " -"instead of the file. Currently, only **.PDF** and **.ZIP** files can be " -"sent using this method. **Note:** This will only work in Telegram " -"versions released after 9 April, 2016. Older clients will ignore them." -msgstr "" - -#: aiogram.types.inline_query_result_document.InlineQueryResultDocument:4 of -msgid "Source: https://core.telegram.org/bots/api#inlinequeryresultdocument" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_document.InlineQueryResultDocument.type:1 -#: of -msgid "Type of the result, must be *document*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_document.InlineQueryResultDocument.id:1 of -msgid "Unique identifier for this result, 1-64 bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_document.InlineQueryResultDocument.title:1 -#: of -msgid "Title for the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_document.InlineQueryResultDocument.document_url:1 -#: of -msgid "A valid URL for the file" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_document.InlineQueryResultDocument.mime_type:1 -#: of -msgid "" -"MIME type of the content of the file, either 'application/pdf' or " -"'application/zip'" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_document.InlineQueryResultDocument.caption:1 -#: of -msgid "" -"*Optional*. Caption of the document to be sent, 0-1024 characters after " -"entities parsing" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_document.InlineQueryResultDocument.parse_mode:1 -#: of -msgid "" -"*Optional*. Mode for parsing entities in the document caption. See " -"`formatting options `_ for more details." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_document.InlineQueryResultDocument.caption_entities:1 -#: of -msgid "" -"*Optional*. List of special entities that appear in the caption, which " -"can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_document.InlineQueryResultDocument.description:1 -#: of -msgid "*Optional*. Short description of the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_document.InlineQueryResultDocument.reply_markup:1 -#: of -msgid "*Optional*. Inline keyboard attached to the message" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_document.InlineQueryResultDocument.input_message_content:1 -#: of -msgid "*Optional*. Content of the message to be sent instead of the file" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_document.InlineQueryResultDocument.thumb_url:1 -#: of -msgid "*Optional*. URL of the thumbnail (JPEG only) for the file" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_document.InlineQueryResultDocument.thumb_width:1 -#: of -msgid "*Optional*. Thumbnail width" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_document.InlineQueryResultDocument.thumb_height:1 -#: of -msgid "*Optional*. Thumbnail height" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_game.po b/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_game.po deleted file mode 100644 index a82f430f..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_game.po +++ /dev/null @@ -1,65 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_query_result_game.rst:3 -msgid "InlineQueryResultGame" -msgstr "" - -#: aiogram.types.inline_query_result_game.InlineQueryResultGame:1 of -msgid "" -"Represents a `Game `_. " -"**Note:** This will only work in Telegram versions released after October" -" 1, 2016. Older clients will not display any inline results if a game " -"result is among them." -msgstr "" - -#: aiogram.types.inline_query_result_game.InlineQueryResultGame:4 of -msgid "Source: https://core.telegram.org/bots/api#inlinequeryresultgame" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_game.InlineQueryResultGame.type:1 of -msgid "Type of the result, must be *game*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_game.InlineQueryResultGame.id:1 of -msgid "Unique identifier for this result, 1-64 bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_game.InlineQueryResultGame.game_short_name:1 -#: of -msgid "Short name of the game" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_game.InlineQueryResultGame.reply_markup:1 -#: of -msgid "" -"*Optional*. `Inline keyboard `_ attached to the message" -msgstr "" - -#~ msgid "" -#~ "*Optional*. `Inline keyboard " -#~ "`_ attached to " -#~ "the message" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_gif.po b/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_gif.po deleted file mode 100644 index 0e298f7f..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_gif.po +++ /dev/null @@ -1,127 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_query_result_gif.rst:3 -msgid "InlineQueryResultGif" -msgstr "" - -#: aiogram.types.inline_query_result_gif.InlineQueryResultGif:1 of -msgid "" -"Represents a link to an animated GIF file. By default, this animated GIF " -"file will be sent by the user with optional caption. Alternatively, you " -"can use *input_message_content* to send a message with the specified " -"content instead of the animation." -msgstr "" - -#: aiogram.types.inline_query_result_gif.InlineQueryResultGif:3 of -msgid "Source: https://core.telegram.org/bots/api#inlinequeryresultgif" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_gif.InlineQueryResultGif.type:1 of -msgid "Type of the result, must be *gif*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_gif.InlineQueryResultGif.id:1 of -msgid "Unique identifier for this result, 1-64 bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_gif.InlineQueryResultGif.gif_url:1 of -msgid "A valid URL for the GIF file. File size must not exceed 1MB" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_gif.InlineQueryResultGif.thumb_url:1 of -msgid "" -"URL of the static (JPEG or GIF) or animated (MPEG4) thumbnail for the " -"result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_gif.InlineQueryResultGif.gif_width:1 of -msgid "*Optional*. Width of the GIF" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_gif.InlineQueryResultGif.gif_height:1 of -msgid "*Optional*. Height of the GIF" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_gif.InlineQueryResultGif.gif_duration:1 of -msgid "*Optional*. Duration of the GIF in seconds" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_gif.InlineQueryResultGif.thumb_mime_type:1 -#: of -msgid "" -"*Optional*. MIME type of the thumbnail, must be one of 'image/jpeg', " -"'image/gif', or 'video/mp4'. Defaults to 'image/jpeg'" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_gif.InlineQueryResultGif.title:1 of -msgid "*Optional*. Title for the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_gif.InlineQueryResultGif.caption:1 of -msgid "" -"*Optional*. Caption of the GIF file to be sent, 0-1024 characters after " -"entities parsing" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_gif.InlineQueryResultGif.parse_mode:1 of -msgid "" -"*Optional*. Mode for parsing entities in the caption. See `formatting " -"options `_ for " -"more details." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_gif.InlineQueryResultGif.caption_entities:1 -#: of -msgid "" -"*Optional*. List of special entities that appear in the caption, which " -"can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_gif.InlineQueryResultGif.reply_markup:1 of -msgid "" -"*Optional*. `Inline keyboard `_ attached to the message" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_gif.InlineQueryResultGif.input_message_content:1 -#: of -msgid "*Optional*. Content of the message to be sent instead of the GIF animation" -msgstr "" - -#~ msgid "" -#~ "*Optional*. `Inline keyboard " -#~ "`_ attached to " -#~ "the message" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_location.po b/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_location.po deleted file mode 100644 index aee2b822..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_location.po +++ /dev/null @@ -1,136 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_query_result_location.rst:3 -msgid "InlineQueryResultLocation" -msgstr "" - -#: aiogram.types.inline_query_result_location.InlineQueryResultLocation:1 of -msgid "" -"Represents a location on a map. By default, the location will be sent by " -"the user. Alternatively, you can use *input_message_content* to send a " -"message with the specified content instead of the location. **Note:** " -"This will only work in Telegram versions released after 9 April, 2016. " -"Older clients will ignore them." -msgstr "" - -#: aiogram.types.inline_query_result_location.InlineQueryResultLocation:4 of -msgid "Source: https://core.telegram.org/bots/api#inlinequeryresultlocation" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_location.InlineQueryResultLocation.type:1 -#: of -msgid "Type of the result, must be *location*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_location.InlineQueryResultLocation.id:1 of -msgid "Unique identifier for this result, 1-64 Bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_location.InlineQueryResultLocation.latitude:1 -#: of -msgid "Location latitude in degrees" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_location.InlineQueryResultLocation.longitude:1 -#: of -msgid "Location longitude in degrees" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_location.InlineQueryResultLocation.title:1 -#: of -msgid "Location title" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_location.InlineQueryResultLocation.horizontal_accuracy:1 -#: of -msgid "" -"*Optional*. The radius of uncertainty for the location, measured in " -"meters; 0-1500" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_location.InlineQueryResultLocation.live_period:1 -#: of -msgid "" -"*Optional*. Period in seconds for which the location can be updated, " -"should be between 60 and 86400." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_location.InlineQueryResultLocation.heading:1 -#: of -msgid "" -"*Optional*. For live locations, a direction in which the user is moving, " -"in degrees. Must be between 1 and 360 if specified." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_location.InlineQueryResultLocation.proximity_alert_radius:1 -#: of -msgid "" -"*Optional*. For live locations, a maximum distance for proximity alerts " -"about approaching another chat member, in meters. Must be between 1 and " -"100000 if specified." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_location.InlineQueryResultLocation.reply_markup:1 -#: of -msgid "" -"*Optional*. `Inline keyboard `_ attached to the message" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_location.InlineQueryResultLocation.input_message_content:1 -#: of -msgid "*Optional*. Content of the message to be sent instead of the location" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_location.InlineQueryResultLocation.thumb_url:1 -#: of -msgid "*Optional*. Url of the thumbnail for the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_location.InlineQueryResultLocation.thumb_width:1 -#: of -msgid "*Optional*. Thumbnail width" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_location.InlineQueryResultLocation.thumb_height:1 -#: of -msgid "*Optional*. Thumbnail height" -msgstr "" - -#~ msgid "" -#~ "*Optional*. `Inline keyboard " -#~ "`_ attached to " -#~ "the message" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_mpeg4_gif.po b/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_mpeg4_gif.po deleted file mode 100644 index 56c4da50..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_mpeg4_gif.po +++ /dev/null @@ -1,140 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_query_result_mpeg4_gif.rst:3 -msgid "InlineQueryResultMpeg4Gif" -msgstr "" - -#: aiogram.types.inline_query_result_mpeg4_gif.InlineQueryResultMpeg4Gif:1 of -msgid "" -"Represents a link to a video animation (H.264/MPEG-4 AVC video without " -"sound). By default, this animated MPEG-4 file will be sent by the user " -"with optional caption. Alternatively, you can use *input_message_content*" -" to send a message with the specified content instead of the animation." -msgstr "" - -#: aiogram.types.inline_query_result_mpeg4_gif.InlineQueryResultMpeg4Gif:3 of -msgid "Source: https://core.telegram.org/bots/api#inlinequeryresultmpeg4gif" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_mpeg4_gif.InlineQueryResultMpeg4Gif.type:1 -#: of -msgid "Type of the result, must be *mpeg4_gif*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_mpeg4_gif.InlineQueryResultMpeg4Gif.id:1 -#: of -msgid "Unique identifier for this result, 1-64 bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_mpeg4_gif.InlineQueryResultMpeg4Gif.mpeg4_url:1 -#: of -msgid "A valid URL for the MPEG4 file. File size must not exceed 1MB" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_mpeg4_gif.InlineQueryResultMpeg4Gif.thumb_url:1 -#: of -msgid "" -"URL of the static (JPEG or GIF) or animated (MPEG4) thumbnail for the " -"result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_mpeg4_gif.InlineQueryResultMpeg4Gif.mpeg4_width:1 -#: of -msgid "*Optional*. Video width" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_mpeg4_gif.InlineQueryResultMpeg4Gif.mpeg4_height:1 -#: of -msgid "*Optional*. Video height" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_mpeg4_gif.InlineQueryResultMpeg4Gif.mpeg4_duration:1 -#: of -msgid "*Optional*. Video duration in seconds" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_mpeg4_gif.InlineQueryResultMpeg4Gif.thumb_mime_type:1 -#: of -msgid "" -"*Optional*. MIME type of the thumbnail, must be one of 'image/jpeg', " -"'image/gif', or 'video/mp4'. Defaults to 'image/jpeg'" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_mpeg4_gif.InlineQueryResultMpeg4Gif.title:1 -#: of -msgid "*Optional*. Title for the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_mpeg4_gif.InlineQueryResultMpeg4Gif.caption:1 -#: of -msgid "" -"*Optional*. Caption of the MPEG-4 file to be sent, 0-1024 characters " -"after entities parsing" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_mpeg4_gif.InlineQueryResultMpeg4Gif.parse_mode:1 -#: of -msgid "" -"*Optional*. Mode for parsing entities in the caption. See `formatting " -"options `_ for " -"more details." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_mpeg4_gif.InlineQueryResultMpeg4Gif.caption_entities:1 -#: of -msgid "" -"*Optional*. List of special entities that appear in the caption, which " -"can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_mpeg4_gif.InlineQueryResultMpeg4Gif.reply_markup:1 -#: of -msgid "" -"*Optional*. `Inline keyboard `_ attached to the message" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_mpeg4_gif.InlineQueryResultMpeg4Gif.input_message_content:1 -#: of -msgid "" -"*Optional*. Content of the message to be sent instead of the video " -"animation" -msgstr "" - -#~ msgid "" -#~ "*Optional*. `Inline keyboard " -#~ "`_ attached to " -#~ "the message" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_photo.po b/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_photo.po deleted file mode 100644 index 6d189167..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_photo.po +++ /dev/null @@ -1,126 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_query_result_photo.rst:3 -msgid "InlineQueryResultPhoto" -msgstr "" - -#: aiogram.types.inline_query_result_photo.InlineQueryResultPhoto:1 of -msgid "" -"Represents a link to a photo. By default, this photo will be sent by the " -"user with optional caption. Alternatively, you can use " -"*input_message_content* to send a message with the specified content " -"instead of the photo." -msgstr "" - -#: aiogram.types.inline_query_result_photo.InlineQueryResultPhoto:3 of -msgid "Source: https://core.telegram.org/bots/api#inlinequeryresultphoto" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_photo.InlineQueryResultPhoto.type:1 of -msgid "Type of the result, must be *photo*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_photo.InlineQueryResultPhoto.id:1 of -msgid "Unique identifier for this result, 1-64 bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_photo.InlineQueryResultPhoto.photo_url:1 -#: of -msgid "" -"A valid URL of the photo. Photo must be in **JPEG** format. Photo size " -"must not exceed 5MB" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_photo.InlineQueryResultPhoto.thumb_url:1 -#: of -msgid "URL of the thumbnail for the photo" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_photo.InlineQueryResultPhoto.photo_width:1 -#: of -msgid "*Optional*. Width of the photo" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_photo.InlineQueryResultPhoto.photo_height:1 -#: of -msgid "*Optional*. Height of the photo" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_photo.InlineQueryResultPhoto.title:1 of -msgid "*Optional*. Title for the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_photo.InlineQueryResultPhoto.description:1 -#: of -msgid "*Optional*. Short description of the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_photo.InlineQueryResultPhoto.caption:1 of -msgid "" -"*Optional*. Caption of the photo to be sent, 0-1024 characters after " -"entities parsing" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_photo.InlineQueryResultPhoto.parse_mode:1 -#: of -msgid "" -"*Optional*. Mode for parsing entities in the photo caption. See " -"`formatting options `_ for more details." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_photo.InlineQueryResultPhoto.caption_entities:1 -#: of -msgid "" -"*Optional*. List of special entities that appear in the caption, which " -"can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_photo.InlineQueryResultPhoto.reply_markup:1 -#: of -msgid "" -"*Optional*. `Inline keyboard `_ attached to the message" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_photo.InlineQueryResultPhoto.input_message_content:1 -#: of -msgid "*Optional*. Content of the message to be sent instead of the photo" -msgstr "" - -#~ msgid "" -#~ "*Optional*. `Inline keyboard " -#~ "`_ attached to " -#~ "the message" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_venue.po b/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_venue.po deleted file mode 100644 index 2867f687..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_venue.po +++ /dev/null @@ -1,134 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_query_result_venue.rst:3 -msgid "InlineQueryResultVenue" -msgstr "" - -#: aiogram.types.inline_query_result_venue.InlineQueryResultVenue:1 of -msgid "" -"Represents a venue. By default, the venue will be sent by the user. " -"Alternatively, you can use *input_message_content* to send a message with" -" the specified content instead of the venue. **Note:** This will only " -"work in Telegram versions released after 9 April, 2016. Older clients " -"will ignore them." -msgstr "" - -#: aiogram.types.inline_query_result_venue.InlineQueryResultVenue:4 of -msgid "Source: https://core.telegram.org/bots/api#inlinequeryresultvenue" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_venue.InlineQueryResultVenue.type:1 of -msgid "Type of the result, must be *venue*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_venue.InlineQueryResultVenue.id:1 of -msgid "Unique identifier for this result, 1-64 Bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_venue.InlineQueryResultVenue.latitude:1 of -msgid "Latitude of the venue location in degrees" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_venue.InlineQueryResultVenue.longitude:1 -#: of -msgid "Longitude of the venue location in degrees" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_venue.InlineQueryResultVenue.title:1 of -msgid "Title of the venue" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_venue.InlineQueryResultVenue.address:1 of -msgid "Address of the venue" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_venue.InlineQueryResultVenue.foursquare_id:1 -#: of -msgid "*Optional*. Foursquare identifier of the venue if known" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_venue.InlineQueryResultVenue.foursquare_type:1 -#: of -msgid "" -"*Optional*. Foursquare type of the venue, if known. (For example, " -"'arts_entertainment/default', 'arts_entertainment/aquarium' or " -"'food/icecream'.)" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_venue.InlineQueryResultVenue.google_place_id:1 -#: of -msgid "*Optional*. Google Places identifier of the venue" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_venue.InlineQueryResultVenue.google_place_type:1 -#: of -msgid "" -"*Optional*. Google Places type of the venue. (See `supported types " -"`_.)" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_venue.InlineQueryResultVenue.reply_markup:1 -#: of -msgid "" -"*Optional*. `Inline keyboard `_ attached to the message" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_venue.InlineQueryResultVenue.input_message_content:1 -#: of -msgid "*Optional*. Content of the message to be sent instead of the venue" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_venue.InlineQueryResultVenue.thumb_url:1 -#: of -msgid "*Optional*. Url of the thumbnail for the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_venue.InlineQueryResultVenue.thumb_width:1 -#: of -msgid "*Optional*. Thumbnail width" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_venue.InlineQueryResultVenue.thumb_height:1 -#: of -msgid "*Optional*. Thumbnail height" -msgstr "" - -#~ msgid "" -#~ "*Optional*. `Inline keyboard " -#~ "`_ attached to " -#~ "the message" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_video.po b/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_video.po deleted file mode 100644 index 379ba6ed..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_video.po +++ /dev/null @@ -1,145 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_query_result_video.rst:3 -msgid "InlineQueryResultVideo" -msgstr "" - -#: aiogram.types.inline_query_result_video.InlineQueryResultVideo:1 of -msgid "" -"Represents a link to a page containing an embedded video player or a " -"video file. By default, this video file will be sent by the user with an " -"optional caption. Alternatively, you can use *input_message_content* to " -"send a message with the specified content instead of the video." -msgstr "" - -#: aiogram.types.inline_query_result_video.InlineQueryResultVideo:3 of -msgid "" -"If an InlineQueryResultVideo message contains an embedded video (e.g., " -"YouTube), you **must** replace its content using *input_message_content*." -msgstr "" - -#: aiogram.types.inline_query_result_video.InlineQueryResultVideo:5 of -msgid "Source: https://core.telegram.org/bots/api#inlinequeryresultvideo" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_video.InlineQueryResultVideo.type:1 of -msgid "Type of the result, must be *video*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_video.InlineQueryResultVideo.id:1 of -msgid "Unique identifier for this result, 1-64 bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_video.InlineQueryResultVideo.video_url:1 -#: of -msgid "A valid URL for the embedded video player or video file" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_video.InlineQueryResultVideo.mime_type:1 -#: of -msgid "MIME type of the content of the video URL, 'text/html' or 'video/mp4'" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_video.InlineQueryResultVideo.thumb_url:1 -#: of -msgid "URL of the thumbnail (JPEG only) for the video" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_video.InlineQueryResultVideo.title:1 of -msgid "Title for the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_video.InlineQueryResultVideo.caption:1 of -msgid "" -"*Optional*. Caption of the video to be sent, 0-1024 characters after " -"entities parsing" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_video.InlineQueryResultVideo.parse_mode:1 -#: of -msgid "" -"*Optional*. Mode for parsing entities in the video caption. See " -"`formatting options `_ for more details." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_video.InlineQueryResultVideo.caption_entities:1 -#: of -msgid "" -"*Optional*. List of special entities that appear in the caption, which " -"can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_video.InlineQueryResultVideo.video_width:1 -#: of -msgid "*Optional*. Video width" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_video.InlineQueryResultVideo.video_height:1 -#: of -msgid "*Optional*. Video height" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_video.InlineQueryResultVideo.video_duration:1 -#: of -msgid "*Optional*. Video duration in seconds" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_video.InlineQueryResultVideo.description:1 -#: of -msgid "*Optional*. Short description of the result" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_video.InlineQueryResultVideo.reply_markup:1 -#: of -msgid "" -"*Optional*. `Inline keyboard `_ attached to the message" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_video.InlineQueryResultVideo.input_message_content:1 -#: of -msgid "" -"*Optional*. Content of the message to be sent instead of the video. This " -"field is **required** if InlineQueryResultVideo is used to send an HTML-" -"page as a result (e.g., a YouTube video)." -msgstr "" - -#~ msgid "" -#~ "*Optional*. `Inline keyboard " -#~ "`_ attached to " -#~ "the message" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_voice.po b/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_voice.po deleted file mode 100644 index 4f87318b..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/inline_query_result_voice.po +++ /dev/null @@ -1,108 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-06 14:18+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/inline_query_result_voice.rst:3 -msgid "InlineQueryResultVoice" -msgstr "" - -#: aiogram.types.inline_query_result_voice.InlineQueryResultVoice:1 of -msgid "" -"Represents a link to a voice recording in an .OGG container encoded with " -"OPUS. By default, this voice recording will be sent by the user. " -"Alternatively, you can use *input_message_content* to send a message with" -" the specified content instead of the the voice message. **Note:** This " -"will only work in Telegram versions released after 9 April, 2016. Older " -"clients will ignore them." -msgstr "" - -#: aiogram.types.inline_query_result_voice.InlineQueryResultVoice:4 of -msgid "Source: https://core.telegram.org/bots/api#inlinequeryresultvoice" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_voice.InlineQueryResultVoice.type:1 of -msgid "Type of the result, must be *voice*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_voice.InlineQueryResultVoice.id:1 of -msgid "Unique identifier for this result, 1-64 bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_voice.InlineQueryResultVoice.voice_url:1 -#: of -msgid "A valid URL for the voice recording" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_voice.InlineQueryResultVoice.title:1 of -msgid "Recording title" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_voice.InlineQueryResultVoice.caption:1 of -msgid "*Optional*. Caption, 0-1024 characters after entities parsing" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_voice.InlineQueryResultVoice.parse_mode:1 -#: of -msgid "" -"*Optional*. Mode for parsing entities in the voice message caption. See " -"`formatting options `_ for more details." -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_voice.InlineQueryResultVoice.caption_entities:1 -#: of -msgid "" -"*Optional*. List of special entities that appear in the caption, which " -"can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_voice.InlineQueryResultVoice.voice_duration:1 -#: of -msgid "*Optional*. Recording duration in seconds" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_voice.InlineQueryResultVoice.reply_markup:1 -#: of -msgid "" -"*Optional*. `Inline keyboard `_ attached to the message" -msgstr "" - -#: ../../docstring -#: aiogram.types.inline_query_result_voice.InlineQueryResultVoice.input_message_content:1 -#: of -msgid "" -"*Optional*. Content of the message to be sent instead of the voice " -"recording" -msgstr "" - -#~ msgid "" -#~ "*Optional*. `Inline keyboard " -#~ "`_ attached to " -#~ "the message" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/input_contact_message_content.po b/docs/locale/en/LC_MESSAGES/api/types/input_contact_message_content.po deleted file mode 100644 index 16c4ac2b..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/input_contact_message_content.po +++ /dev/null @@ -1,59 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/input_contact_message_content.rst:3 -msgid "InputContactMessageContent" -msgstr "" - -#: aiogram.types.input_contact_message_content.InputContactMessageContent:1 of -msgid "" -"Represents the `content " -"`_ of a contact " -"message to be sent as the result of an inline query." -msgstr "" - -#: aiogram.types.input_contact_message_content.InputContactMessageContent:3 of -msgid "Source: https://core.telegram.org/bots/api#inputcontactmessagecontent" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_contact_message_content.InputContactMessageContent.phone_number:1 -#: of -msgid "Contact's phone number" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_contact_message_content.InputContactMessageContent.first_name:1 -#: of -msgid "Contact's first name" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_contact_message_content.InputContactMessageContent.last_name:1 -#: of -msgid "*Optional*. Contact's last name" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_contact_message_content.InputContactMessageContent.vcard:1 -#: of -msgid "" -"*Optional*. Additional data about the contact in the form of a `vCard " -"`_, 0-2048 bytes" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/input_file.po b/docs/locale/en/LC_MESSAGES/api/types/input_file.po deleted file mode 100644 index 908e1a50..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/input_file.po +++ /dev/null @@ -1,63 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/input_file.rst:3 -msgid "InputFile" -msgstr "" - -#: aiogram.types.input_file.InputFile:1 of -msgid "" -"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." -msgstr "" - -#: aiogram.types.input_file.InputFile:3 of -msgid "Source: https://core.telegram.org/bots/api#inputfile" -msgstr "" - -#: aiogram.types.input_file.BufferedInputFile.from_file:1 of -msgid "Create buffer from file" -msgstr "" - -#: aiogram.types.input_file.BufferedInputFile.from_file of -msgid "Parameters" -msgstr "" - -#: aiogram.types.input_file.BufferedInputFile.from_file:3 of -msgid "Path to file" -msgstr "" - -#: aiogram.types.input_file.BufferedInputFile.from_file:4 of -msgid "" -"Filename to be propagated to telegram. By default, will be parsed from " -"path" -msgstr "" - -#: aiogram.types.input_file.BufferedInputFile.from_file:6 of -msgid "Uploading chunk size" -msgstr "" - -#: aiogram.types.input_file.BufferedInputFile.from_file of -msgid "Returns" -msgstr "" - -#: aiogram.types.input_file.BufferedInputFile.from_file:7 of -msgid "instance of :obj:`BufferedInputFile`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/input_invoice_message_content.po b/docs/locale/en/LC_MESSAGES/api/types/input_invoice_message_content.po deleted file mode 100644 index cab32cc6..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/input_invoice_message_content.po +++ /dev/null @@ -1,192 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/input_invoice_message_content.rst:3 -msgid "InputInvoiceMessageContent" -msgstr "" - -#: aiogram.types.input_invoice_message_content.InputInvoiceMessageContent:1 of -msgid "" -"Represents the `content " -"`_ of an invoice " -"message to be sent as the result of an inline query." -msgstr "" - -#: aiogram.types.input_invoice_message_content.InputInvoiceMessageContent:3 of -msgid "Source: https://core.telegram.org/bots/api#inputinvoicemessagecontent" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_invoice_message_content.InputInvoiceMessageContent.title:1 -#: of -msgid "Product name, 1-32 characters" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_invoice_message_content.InputInvoiceMessageContent.description:1 -#: of -msgid "Product description, 1-255 characters" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_invoice_message_content.InputInvoiceMessageContent.payload:1 -#: of -msgid "" -"Bot-defined invoice payload, 1-128 bytes. This will not be displayed to " -"the user, use for your internal processes." -msgstr "" - -#: ../../docstring -#: aiogram.types.input_invoice_message_content.InputInvoiceMessageContent.provider_token:1 -#: of -msgid "" -"Payment provider token, obtained via `@BotFather " -"`_" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_invoice_message_content.InputInvoiceMessageContent.currency:1 -#: of -msgid "" -"Three-letter ISO 4217 currency code, see `more on currencies " -"`_" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_invoice_message_content.InputInvoiceMessageContent.prices:1 -#: of -msgid "" -"Price breakdown, a JSON-serialized list of components (e.g. product " -"price, tax, discount, delivery cost, delivery tax, bonus, etc.)" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_invoice_message_content.InputInvoiceMessageContent.max_tip_amount:1 -#: of -msgid "" -"*Optional*. 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" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_invoice_message_content.InputInvoiceMessageContent.suggested_tip_amounts:1 -#: of -msgid "" -"*Optional*. A JSON-serialized array of suggested amounts of tip 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*." -msgstr "" - -#: ../../docstring -#: aiogram.types.input_invoice_message_content.InputInvoiceMessageContent.provider_data:1 -#: of -msgid "" -"*Optional*. A JSON-serialized object for data about the invoice, which " -"will be shared with the payment provider. A detailed description of the " -"required fields should be provided by the payment provider." -msgstr "" - -#: ../../docstring -#: aiogram.types.input_invoice_message_content.InputInvoiceMessageContent.photo_url:1 -#: of -msgid "" -"*Optional*. URL of the product photo for the invoice. Can be a photo of " -"the goods or a marketing image for a service." -msgstr "" - -#: ../../docstring -#: aiogram.types.input_invoice_message_content.InputInvoiceMessageContent.photo_size:1 -#: of -msgid "*Optional*. Photo size in bytes" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_invoice_message_content.InputInvoiceMessageContent.photo_width:1 -#: of -msgid "*Optional*. Photo width" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_invoice_message_content.InputInvoiceMessageContent.photo_height:1 -#: of -msgid "*Optional*. Photo height" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_invoice_message_content.InputInvoiceMessageContent.need_name:1 -#: of -msgid "" -"*Optional*. Pass :code:`True` if you require the user's full name to " -"complete the order" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_invoice_message_content.InputInvoiceMessageContent.need_phone_number:1 -#: of -msgid "" -"*Optional*. Pass :code:`True` if you require the user's phone number to " -"complete the order" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_invoice_message_content.InputInvoiceMessageContent.need_email:1 -#: of -msgid "" -"*Optional*. Pass :code:`True` if you require the user's email address to " -"complete the order" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_invoice_message_content.InputInvoiceMessageContent.need_shipping_address:1 -#: of -msgid "" -"*Optional*. Pass :code:`True` if you require the user's shipping address " -"to complete the order" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_invoice_message_content.InputInvoiceMessageContent.send_phone_number_to_provider:1 -#: of -msgid "" -"*Optional*. Pass :code:`True` if the user's phone number should be sent " -"to provider" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_invoice_message_content.InputInvoiceMessageContent.send_email_to_provider:1 -#: of -msgid "" -"*Optional*. Pass :code:`True` if the user's email address should be sent " -"to provider" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_invoice_message_content.InputInvoiceMessageContent.is_flexible:1 -#: of -msgid "" -"*Optional*. Pass :code:`True` if the final price depends on the shipping " -"method" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/input_location_message_content.po b/docs/locale/en/LC_MESSAGES/api/types/input_location_message_content.po deleted file mode 100644 index 63866b93..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/input_location_message_content.po +++ /dev/null @@ -1,80 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/input_location_message_content.rst:3 -msgid "InputLocationMessageContent" -msgstr "" - -#: aiogram.types.input_location_message_content.InputLocationMessageContent:1 -#: of -msgid "" -"Represents the `content " -"`_ of a location " -"message to be sent as the result of an inline query." -msgstr "" - -#: aiogram.types.input_location_message_content.InputLocationMessageContent:3 -#: of -msgid "Source: https://core.telegram.org/bots/api#inputlocationmessagecontent" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_location_message_content.InputLocationMessageContent.latitude:1 -#: of -msgid "Latitude of the location in degrees" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_location_message_content.InputLocationMessageContent.longitude:1 -#: of -msgid "Longitude of the location in degrees" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_location_message_content.InputLocationMessageContent.horizontal_accuracy:1 -#: of -msgid "" -"*Optional*. The radius of uncertainty for the location, measured in " -"meters; 0-1500" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_location_message_content.InputLocationMessageContent.live_period:1 -#: of -msgid "" -"*Optional*. Period in seconds for which the location can be updated, " -"should be between 60 and 86400." -msgstr "" - -#: ../../docstring -#: aiogram.types.input_location_message_content.InputLocationMessageContent.heading:1 -#: of -msgid "" -"*Optional*. For live locations, a direction in which the user is moving, " -"in degrees. Must be between 1 and 360 if specified." -msgstr "" - -#: ../../docstring -#: aiogram.types.input_location_message_content.InputLocationMessageContent.proximity_alert_radius:1 -#: of -msgid "" -"*Optional*. For live locations, a maximum distance for proximity alerts " -"about approaching another chat member, in meters. Must be between 1 and " -"100000 if specified." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/input_media.po b/docs/locale/en/LC_MESSAGES/api/types/input_media.po deleted file mode 100644 index b6740e36..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/input_media.po +++ /dev/null @@ -1,52 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/input_media.rst:3 -msgid "InputMedia" -msgstr "" - -#: aiogram.types.input_media.InputMedia:1 of -msgid "" -"This object represents the content of a media message to be sent. It " -"should be one of" -msgstr "" - -#: aiogram.types.input_media.InputMedia:3 of -msgid ":class:`aiogram.types.input_media_animation.InputMediaAnimation`" -msgstr "" - -#: aiogram.types.input_media.InputMedia:4 of -msgid ":class:`aiogram.types.input_media_document.InputMediaDocument`" -msgstr "" - -#: aiogram.types.input_media.InputMedia:5 of -msgid ":class:`aiogram.types.input_media_audio.InputMediaAudio`" -msgstr "" - -#: aiogram.types.input_media.InputMedia:6 of -msgid ":class:`aiogram.types.input_media_photo.InputMediaPhoto`" -msgstr "" - -#: aiogram.types.input_media.InputMedia:7 of -msgid ":class:`aiogram.types.input_media_video.InputMediaVideo`" -msgstr "" - -#: aiogram.types.input_media.InputMedia:9 of -msgid "Source: https://core.telegram.org/bots/api#inputmedia" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/input_media_animation.po b/docs/locale/en/LC_MESSAGES/api/types/input_media_animation.po deleted file mode 100644 index e19c352d..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/input_media_animation.po +++ /dev/null @@ -1,106 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/input_media_animation.rst:3 -msgid "InputMediaAnimation" -msgstr "" - -#: aiogram.types.input_media_animation.InputMediaAnimation:1 of -msgid "" -"Represents an animation file (GIF or H.264/MPEG-4 AVC video without " -"sound) to be sent." -msgstr "" - -#: aiogram.types.input_media_animation.InputMediaAnimation:3 of -msgid "Source: https://core.telegram.org/bots/api#inputmediaanimation" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_media_animation.InputMediaAnimation.type:1 of -msgid "Type of the result, must be *animation*" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_media_animation.InputMediaAnimation.media:1 of -msgid "" -"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 » `" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_media_animation.InputMediaAnimation.thumb:1 of -msgid "" -"*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 » `" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_media_animation.InputMediaAnimation.caption:1 of -msgid "" -"*Optional*. Caption of the animation to be sent, 0-1024 characters after " -"entities parsing" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_media_animation.InputMediaAnimation.parse_mode:1 of -msgid "" -"*Optional*. Mode for parsing entities in the animation caption. See " -"`formatting options `_ for more details." -msgstr "" - -#: ../../docstring -#: aiogram.types.input_media_animation.InputMediaAnimation.caption_entities:1 -#: of -msgid "" -"*Optional*. List of special entities that appear in the caption, which " -"can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_media_animation.InputMediaAnimation.width:1 of -msgid "*Optional*. Animation width" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_media_animation.InputMediaAnimation.height:1 of -msgid "*Optional*. Animation height" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_media_animation.InputMediaAnimation.duration:1 of -msgid "*Optional*. Animation duration in seconds" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_media_animation.InputMediaAnimation.has_spoiler:1 of -msgid "" -"*Optional*. Pass :code:`True` if the animation needs to be covered with a" -" spoiler animation" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/input_media_audio.po b/docs/locale/en/LC_MESSAGES/api/types/input_media_audio.po deleted file mode 100644 index 7273e1ac..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/input_media_audio.po +++ /dev/null @@ -1,91 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/input_media_audio.rst:3 -msgid "InputMediaAudio" -msgstr "" - -#: aiogram.types.input_media_audio.InputMediaAudio:1 of -msgid "Represents an audio file to be treated as music to be sent." -msgstr "" - -#: aiogram.types.input_media_audio.InputMediaAudio:3 of -msgid "Source: https://core.telegram.org/bots/api#inputmediaaudio" -msgstr "" - -#: ../../docstring aiogram.types.input_media_audio.InputMediaAudio.type:1 of -msgid "Type of the result, must be *audio*" -msgstr "" - -#: ../../docstring aiogram.types.input_media_audio.InputMediaAudio.media:1 of -msgid "" -"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 » `" -msgstr "" - -#: ../../docstring aiogram.types.input_media_audio.InputMediaAudio.thumb:1 of -msgid "" -"*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 » `" -msgstr "" - -#: ../../docstring aiogram.types.input_media_audio.InputMediaAudio.caption:1 of -msgid "" -"*Optional*. Caption of the audio to be sent, 0-1024 characters after " -"entities parsing" -msgstr "" - -#: ../../docstring aiogram.types.input_media_audio.InputMediaAudio.parse_mode:1 -#: of -msgid "" -"*Optional*. Mode for parsing entities in the audio caption. See " -"`formatting options `_ for more details." -msgstr "" - -#: ../../docstring -#: aiogram.types.input_media_audio.InputMediaAudio.caption_entities:1 of -msgid "" -"*Optional*. List of special entities that appear in the caption, which " -"can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring aiogram.types.input_media_audio.InputMediaAudio.duration:1 -#: of -msgid "*Optional*. Duration of the audio in seconds" -msgstr "" - -#: ../../docstring aiogram.types.input_media_audio.InputMediaAudio.performer:1 -#: of -msgid "*Optional*. Performer of the audio" -msgstr "" - -#: ../../docstring aiogram.types.input_media_audio.InputMediaAudio.title:1 of -msgid "*Optional*. Title of the audio" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/input_media_document.po b/docs/locale/en/LC_MESSAGES/api/types/input_media_document.po deleted file mode 100644 index 5ea2a3d9..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/input_media_document.po +++ /dev/null @@ -1,90 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/input_media_document.rst:3 -msgid "InputMediaDocument" -msgstr "" - -#: aiogram.types.input_media_document.InputMediaDocument:1 of -msgid "Represents a general file to be sent." -msgstr "" - -#: aiogram.types.input_media_document.InputMediaDocument:3 of -msgid "Source: https://core.telegram.org/bots/api#inputmediadocument" -msgstr "" - -#: ../../docstring aiogram.types.input_media_document.InputMediaDocument.type:1 -#: of -msgid "Type of the result, must be *document*" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_media_document.InputMediaDocument.media:1 of -msgid "" -"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 » `" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_media_document.InputMediaDocument.thumb:1 of -msgid "" -"*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 » `" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_media_document.InputMediaDocument.caption:1 of -msgid "" -"*Optional*. Caption of the document to be sent, 0-1024 characters after " -"entities parsing" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_media_document.InputMediaDocument.parse_mode:1 of -msgid "" -"*Optional*. Mode for parsing entities in the document caption. See " -"`formatting options `_ for more details." -msgstr "" - -#: ../../docstring -#: aiogram.types.input_media_document.InputMediaDocument.caption_entities:1 of -msgid "" -"*Optional*. List of special entities that appear in the caption, which " -"can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_media_document.InputMediaDocument.disable_content_type_detection:1 -#: of -msgid "" -"*Optional*. Disables automatic server-side content type detection for " -"files uploaded using multipart/form-data. Always :code:`True`, if the " -"document is sent as part of an album." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/input_media_photo.po b/docs/locale/en/LC_MESSAGES/api/types/input_media_photo.po deleted file mode 100644 index 10a634e9..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/input_media_photo.po +++ /dev/null @@ -1,71 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/input_media_photo.rst:3 -msgid "InputMediaPhoto" -msgstr "" - -#: aiogram.types.input_media_photo.InputMediaPhoto:1 of -msgid "Represents a photo to be sent." -msgstr "" - -#: aiogram.types.input_media_photo.InputMediaPhoto:3 of -msgid "Source: https://core.telegram.org/bots/api#inputmediaphoto" -msgstr "" - -#: ../../docstring aiogram.types.input_media_photo.InputMediaPhoto.type:1 of -msgid "Type of the result, must be *photo*" -msgstr "" - -#: ../../docstring aiogram.types.input_media_photo.InputMediaPhoto.media:1 of -msgid "" -"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 » `" -msgstr "" - -#: ../../docstring aiogram.types.input_media_photo.InputMediaPhoto.caption:1 of -msgid "" -"*Optional*. Caption of the photo to be sent, 0-1024 characters after " -"entities parsing" -msgstr "" - -#: ../../docstring aiogram.types.input_media_photo.InputMediaPhoto.parse_mode:1 -#: of -msgid "" -"*Optional*. Mode for parsing entities in the photo caption. See " -"`formatting options `_ for more details." -msgstr "" - -#: ../../docstring -#: aiogram.types.input_media_photo.InputMediaPhoto.caption_entities:1 of -msgid "" -"*Optional*. List of special entities that appear in the caption, which " -"can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_media_photo.InputMediaPhoto.has_spoiler:1 of -msgid "" -"*Optional*. Pass :code:`True` if the photo needs to be covered with a " -"spoiler animation" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/input_media_video.po b/docs/locale/en/LC_MESSAGES/api/types/input_media_video.po deleted file mode 100644 index eef2e134..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/input_media_video.po +++ /dev/null @@ -1,104 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/input_media_video.rst:3 -msgid "InputMediaVideo" -msgstr "" - -#: aiogram.types.input_media_video.InputMediaVideo:1 of -msgid "Represents a video to be sent." -msgstr "" - -#: aiogram.types.input_media_video.InputMediaVideo:3 of -msgid "Source: https://core.telegram.org/bots/api#inputmediavideo" -msgstr "" - -#: ../../docstring aiogram.types.input_media_video.InputMediaVideo.type:1 of -msgid "Type of the result, must be *video*" -msgstr "" - -#: ../../docstring aiogram.types.input_media_video.InputMediaVideo.media:1 of -msgid "" -"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 » `" -msgstr "" - -#: ../../docstring aiogram.types.input_media_video.InputMediaVideo.thumb:1 of -msgid "" -"*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 » `" -msgstr "" - -#: ../../docstring aiogram.types.input_media_video.InputMediaVideo.caption:1 of -msgid "" -"*Optional*. Caption of the video to be sent, 0-1024 characters after " -"entities parsing" -msgstr "" - -#: ../../docstring aiogram.types.input_media_video.InputMediaVideo.parse_mode:1 -#: of -msgid "" -"*Optional*. Mode for parsing entities in the video caption. See " -"`formatting options `_ for more details." -msgstr "" - -#: ../../docstring -#: aiogram.types.input_media_video.InputMediaVideo.caption_entities:1 of -msgid "" -"*Optional*. List of special entities that appear in the caption, which " -"can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring aiogram.types.input_media_video.InputMediaVideo.width:1 of -msgid "*Optional*. Video width" -msgstr "" - -#: ../../docstring aiogram.types.input_media_video.InputMediaVideo.height:1 of -msgid "*Optional*. Video height" -msgstr "" - -#: ../../docstring aiogram.types.input_media_video.InputMediaVideo.duration:1 -#: of -msgid "*Optional*. Video duration in seconds" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_media_video.InputMediaVideo.supports_streaming:1 of -msgid "" -"*Optional*. Pass :code:`True` if the uploaded video is suitable for " -"streaming" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_media_video.InputMediaVideo.has_spoiler:1 of -msgid "" -"*Optional*. Pass :code:`True` if the video needs to be covered with a " -"spoiler animation" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/input_message_content.po b/docs/locale/en/LC_MESSAGES/api/types/input_message_content.po deleted file mode 100644 index cb7a6f5f..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/input_message_content.po +++ /dev/null @@ -1,53 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/input_message_content.rst:3 -msgid "InputMessageContent" -msgstr "" - -#: aiogram.types.input_message_content.InputMessageContent:1 of -msgid "" -"This object represents the content of a message to be sent as a result of" -" an inline query. Telegram clients currently support the following 5 " -"types:" -msgstr "" - -#: aiogram.types.input_message_content.InputMessageContent:3 of -msgid ":class:`aiogram.types.input_text_message_content.InputTextMessageContent`" -msgstr "" - -#: aiogram.types.input_message_content.InputMessageContent:4 of -msgid ":class:`aiogram.types.input_location_message_content.InputLocationMessageContent`" -msgstr "" - -#: aiogram.types.input_message_content.InputMessageContent:5 of -msgid ":class:`aiogram.types.input_venue_message_content.InputVenueMessageContent`" -msgstr "" - -#: aiogram.types.input_message_content.InputMessageContent:6 of -msgid ":class:`aiogram.types.input_contact_message_content.InputContactMessageContent`" -msgstr "" - -#: aiogram.types.input_message_content.InputMessageContent:7 of -msgid ":class:`aiogram.types.input_invoice_message_content.InputInvoiceMessageContent`" -msgstr "" - -#: aiogram.types.input_message_content.InputMessageContent:9 of -msgid "Source: https://core.telegram.org/bots/api#inputmessagecontent" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/input_sticker.po b/docs/locale/en/LC_MESSAGES/api/types/input_sticker.po deleted file mode 100644 index 3bbc8b33..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/input_sticker.po +++ /dev/null @@ -1,56 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2023, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2023. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/types/input_sticker.rst:3 -msgid "InputSticker" -msgstr "" - -#: aiogram.types.input_sticker.InputSticker:1 of -msgid "This object describes a sticker to be added to a sticker set." -msgstr "" - -#: aiogram.types.input_sticker.InputSticker:3 of -msgid "Source: https://core.telegram.org/bots/api#inputsticker" -msgstr "" - -#: ../../docstring aiogram.types.input_sticker.InputSticker.sticker:1 of -msgid "" -"The added sticker. 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. Animated and video stickers can't be uploaded via " -"HTTP URL. :ref:`More information on Sending Files » `" -msgstr "" - -#: ../../docstring aiogram.types.input_sticker.InputSticker.emoji_list:1 of -msgid "List of 1-20 emoji associated with the sticker" -msgstr "" - -#: ../../docstring aiogram.types.input_sticker.InputSticker.mask_position:1 of -msgid "" -"*Optional*. Position where the mask should be placed on faces. For 'mask'" -" stickers only." -msgstr "" - -#: ../../docstring aiogram.types.input_sticker.InputSticker.keywords:1 of -msgid "" -"*Optional*. List of 0-20 search keywords for the sticker with total " -"length of up to 64 characters. For 'regular' and 'custom_emoji' stickers " -"only." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/input_text_message_content.po b/docs/locale/en/LC_MESSAGES/api/types/input_text_message_content.po deleted file mode 100644 index 071e0c64..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/input_text_message_content.po +++ /dev/null @@ -1,62 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/input_text_message_content.rst:3 -msgid "InputTextMessageContent" -msgstr "" - -#: aiogram.types.input_text_message_content.InputTextMessageContent:1 of -msgid "" -"Represents the `content " -"`_ of a text " -"message to be sent as the result of an inline query." -msgstr "" - -#: aiogram.types.input_text_message_content.InputTextMessageContent:3 of -msgid "Source: https://core.telegram.org/bots/api#inputtextmessagecontent" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_text_message_content.InputTextMessageContent.message_text:1 -#: of -msgid "Text of the message to be sent, 1-4096 characters" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_text_message_content.InputTextMessageContent.parse_mode:1 -#: of -msgid "" -"*Optional*. Mode for parsing entities in the message text. See " -"`formatting options `_ for more details." -msgstr "" - -#: ../../docstring -#: aiogram.types.input_text_message_content.InputTextMessageContent.entities:1 -#: of -msgid "" -"*Optional*. List of special entities that appear in message text, which " -"can be specified instead of *parse_mode*" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_text_message_content.InputTextMessageContent.disable_web_page_preview:1 -#: of -msgid "*Optional*. Disables link previews for links in the sent message" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/input_venue_message_content.po b/docs/locale/en/LC_MESSAGES/api/types/input_venue_message_content.po deleted file mode 100644 index 631d4d2b..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/input_venue_message_content.po +++ /dev/null @@ -1,86 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/input_venue_message_content.rst:3 -msgid "InputVenueMessageContent" -msgstr "" - -#: aiogram.types.input_venue_message_content.InputVenueMessageContent:1 of -msgid "" -"Represents the `content " -"`_ of a venue " -"message to be sent as the result of an inline query." -msgstr "" - -#: aiogram.types.input_venue_message_content.InputVenueMessageContent:3 of -msgid "Source: https://core.telegram.org/bots/api#inputvenuemessagecontent" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_venue_message_content.InputVenueMessageContent.latitude:1 -#: of -msgid "Latitude of the venue in degrees" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_venue_message_content.InputVenueMessageContent.longitude:1 -#: of -msgid "Longitude of the venue in degrees" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_venue_message_content.InputVenueMessageContent.title:1 -#: of -msgid "Name of the venue" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_venue_message_content.InputVenueMessageContent.address:1 -#: of -msgid "Address of the venue" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_venue_message_content.InputVenueMessageContent.foursquare_id:1 -#: of -msgid "*Optional*. Foursquare identifier of the venue, if known" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_venue_message_content.InputVenueMessageContent.foursquare_type:1 -#: of -msgid "" -"*Optional*. Foursquare type of the venue, if known. (For example, " -"'arts_entertainment/default', 'arts_entertainment/aquarium' or " -"'food/icecream'.)" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_venue_message_content.InputVenueMessageContent.google_place_id:1 -#: of -msgid "*Optional*. Google Places identifier of the venue" -msgstr "" - -#: ../../docstring -#: aiogram.types.input_venue_message_content.InputVenueMessageContent.google_place_type:1 -#: of -msgid "" -"*Optional*. Google Places type of the venue. (See `supported types " -"`_.)" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/invoice.po b/docs/locale/en/LC_MESSAGES/api/types/invoice.po deleted file mode 100644 index 85c30c9e..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/invoice.po +++ /dev/null @@ -1,60 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/invoice.rst:3 -msgid "Invoice" -msgstr "" - -#: aiogram.types.invoice.Invoice:1 of -msgid "This object contains basic information about an invoice." -msgstr "" - -#: aiogram.types.invoice.Invoice:3 of -msgid "Source: https://core.telegram.org/bots/api#invoice" -msgstr "" - -#: ../../docstring aiogram.types.invoice.Invoice.title:1 of -msgid "Product name" -msgstr "" - -#: ../../docstring aiogram.types.invoice.Invoice.description:1 of -msgid "Product description" -msgstr "" - -#: ../../docstring aiogram.types.invoice.Invoice.start_parameter:1 of -msgid "" -"Unique bot deep-linking parameter that can be used to generate this " -"invoice" -msgstr "" - -#: ../../docstring aiogram.types.invoice.Invoice.currency:1 of -msgid "" -"Three-letter ISO 4217 `currency `_ code" -msgstr "" - -#: ../../docstring aiogram.types.invoice.Invoice.total_amount:1 of -msgid "" -"Total price in the *smallest units* of the currency (integer, **not** " -"float/double). For example, for a price of :code:`US$ 1.45` pass " -":code:`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)." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/keyboard_button.po b/docs/locale/en/LC_MESSAGES/api/types/keyboard_button.po deleted file mode 100644 index a2578af9..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/keyboard_button.po +++ /dev/null @@ -1,124 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/types/keyboard_button.rst:3 -msgid "KeyboardButton" -msgstr "" - -#: aiogram.types.keyboard_button.KeyboardButton:1 of -msgid "" -"This object represents one button of the reply keyboard. For simple text " -"buttons, *String* can be used instead of this object to specify the " -"button text. The optional fields *web_app*, *request_user*, " -"*request_chat*, *request_contact*, *request_location*, and *request_poll*" -" are mutually exclusive. **Note:** *request_contact* and " -"*request_location* options will only work in Telegram versions released " -"after 9 April, 2016. Older clients will display *unsupported message*." -msgstr "" - -#: aiogram.types.keyboard_button.KeyboardButton:4 of -msgid "" -"**Note:** *request_poll* option will only work in Telegram versions " -"released after 23 January, 2020. Older clients will display *unsupported " -"message*." -msgstr "" - -#: aiogram.types.keyboard_button.KeyboardButton:6 of -msgid "" -"**Note:** *web_app* option will only work in Telegram versions released " -"after 16 April, 2022. Older clients will display *unsupported message*." -msgstr "" - -#: aiogram.types.keyboard_button.KeyboardButton:8 of -msgid "" -"**Note:** *request_user* and *request_chat* options will only work in " -"Telegram versions released after 3 February, 2023. Older clients will " -"display *unsupported message*." -msgstr "" - -#: aiogram.types.keyboard_button.KeyboardButton:10 of -msgid "Source: https://core.telegram.org/bots/api#keyboardbutton" -msgstr "" - -#: ../../docstring aiogram.types.keyboard_button.KeyboardButton.text:1 of -msgid "" -"Text of the button. If none of the optional fields are used, it will be " -"sent as a message when the button is pressed" -msgstr "" - -#: ../../docstring aiogram.types.keyboard_button.KeyboardButton.request_user:1 -#: of -msgid "" -"*Optional.* If specified, pressing the button will open a list of " -"suitable users. Tapping on any user will send their identifier to the bot" -" in a 'user_shared' service message. Available in private chats only." -msgstr "" - -#: ../../docstring aiogram.types.keyboard_button.KeyboardButton.request_chat:1 -#: of -msgid "" -"*Optional.* If specified, pressing the button will open a list of " -"suitable chats. Tapping on a chat will send its identifier to the bot in " -"a 'chat_shared' service message. Available in private chats only." -msgstr "" - -#: ../../docstring -#: aiogram.types.keyboard_button.KeyboardButton.request_contact:1 of -msgid "" -"*Optional*. If :code:`True`, the user's phone number will be sent as a " -"contact when the button is pressed. Available in private chats only." -msgstr "" - -#: ../../docstring -#: aiogram.types.keyboard_button.KeyboardButton.request_location:1 of -msgid "" -"*Optional*. If :code:`True`, the user's current location will be sent " -"when the button is pressed. Available in private chats only." -msgstr "" - -#: ../../docstring aiogram.types.keyboard_button.KeyboardButton.request_poll:1 -#: of -msgid "" -"*Optional*. If specified, the user will be asked to create a poll and " -"send it to the bot when the button is pressed. Available in private chats" -" only." -msgstr "" - -#: ../../docstring aiogram.types.keyboard_button.KeyboardButton.web_app:1 of -msgid "" -"*Optional*. If specified, the described `Web App " -"`_ will be launched when the " -"button is pressed. The Web App will be able to send a 'web_app_data' " -"service message. Available in private chats only." -msgstr "" - -#~ msgid "" -#~ "This object represents one button of " -#~ "the reply keyboard. For simple text " -#~ "buttons *String* can be used instead " -#~ "of this object to specify text of" -#~ " the button. Optional fields *web_app*, " -#~ "*request_contact*, *request_location*, and " -#~ "*request_poll* are mutually exclusive. " -#~ "**Note:** *request_contact* and *request_location*" -#~ " options will only work in Telegram" -#~ " versions released after 9 April, " -#~ "2016. Older clients will display " -#~ "*unsupported message*." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/keyboard_button_poll_type.po b/docs/locale/en/LC_MESSAGES/api/types/keyboard_button_poll_type.po deleted file mode 100644 index 32adde2e..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/keyboard_button_poll_type.po +++ /dev/null @@ -1,41 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/keyboard_button_poll_type.rst:3 -msgid "KeyboardButtonPollType" -msgstr "" - -#: aiogram.types.keyboard_button_poll_type.KeyboardButtonPollType:1 of -msgid "" -"This object represents type of a poll, which is allowed to be created and" -" sent when the corresponding button is pressed." -msgstr "" - -#: aiogram.types.keyboard_button_poll_type.KeyboardButtonPollType:3 of -msgid "Source: https://core.telegram.org/bots/api#keyboardbuttonpolltype" -msgstr "" - -#: ../../docstring -#: aiogram.types.keyboard_button_poll_type.KeyboardButtonPollType.type:1 of -msgid "" -"*Optional*. If *quiz* is passed, the user will be allowed to create only " -"polls in the quiz mode. If *regular* is passed, only regular polls will " -"be allowed. Otherwise, the user will be allowed to create a poll of any " -"type." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/keyboard_button_request_chat.po b/docs/locale/en/LC_MESSAGES/api/types/keyboard_button_request_chat.po deleted file mode 100644 index 69f4736f..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/keyboard_button_request_chat.po +++ /dev/null @@ -1,104 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2023, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2023. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/types/keyboard_button_request_chat.rst:3 -msgid "KeyboardButtonRequestChat" -msgstr "" - -#: aiogram.types.keyboard_button_request_chat.KeyboardButtonRequestChat:1 of -msgid "" -"This object defines the criteria used to request a suitable chat. The " -"identifier of the selected chat will be shared with the bot when the " -"corresponding button is pressed." -msgstr "" - -#: aiogram.types.keyboard_button_request_chat.KeyboardButtonRequestChat:3 of -msgid "Source: https://core.telegram.org/bots/api#keyboardbuttonrequestchat" -msgstr "" - -#: ../../docstring -#: aiogram.types.keyboard_button_request_chat.KeyboardButtonRequestChat.request_id:1 -#: of -msgid "" -"Signed 32-bit identifier of the request, which will be received back in " -"the :class:`aiogram.types.chat_shared.ChatShared` object. Must be unique " -"within the message" -msgstr "" - -#: ../../docstring -#: aiogram.types.keyboard_button_request_chat.KeyboardButtonRequestChat.chat_is_channel:1 -#: of -msgid "" -"Pass :code:`True` to request a channel chat, pass :code:`False` to " -"request a group or a supergroup chat." -msgstr "" - -#: ../../docstring -#: aiogram.types.keyboard_button_request_chat.KeyboardButtonRequestChat.chat_is_forum:1 -#: of -msgid "" -"*Optional*. Pass :code:`True` to request a forum supergroup, pass " -":code:`False` to request a non-forum chat. If not specified, no " -"additional restrictions are applied." -msgstr "" - -#: ../../docstring -#: aiogram.types.keyboard_button_request_chat.KeyboardButtonRequestChat.chat_has_username:1 -#: of -msgid "" -"*Optional*. Pass :code:`True` to request a supergroup or a channel with a" -" username, pass :code:`False` to request a chat without a username. If " -"not specified, no additional restrictions are applied." -msgstr "" - -#: ../../docstring -#: aiogram.types.keyboard_button_request_chat.KeyboardButtonRequestChat.chat_is_created:1 -#: of -msgid "" -"*Optional*. Pass :code:`True` to request a chat owned by the user. " -"Otherwise, no additional restrictions are applied." -msgstr "" - -#: ../../docstring -#: aiogram.types.keyboard_button_request_chat.KeyboardButtonRequestChat.user_administrator_rights:1 -#: of -msgid "" -"*Optional*. A JSON-serialized object listing the required administrator " -"rights of the user in the chat. The rights must be a superset of " -"*bot_administrator_rights*. If not specified, no additional restrictions " -"are applied." -msgstr "" - -#: ../../docstring -#: aiogram.types.keyboard_button_request_chat.KeyboardButtonRequestChat.bot_administrator_rights:1 -#: of -msgid "" -"*Optional*. A JSON-serialized object listing the required administrator " -"rights of the bot in the chat. The rights must be a subset of " -"*user_administrator_rights*. If not specified, no additional restrictions" -" are applied." -msgstr "" - -#: ../../docstring -#: aiogram.types.keyboard_button_request_chat.KeyboardButtonRequestChat.bot_is_member:1 -#: of -msgid "" -"*Optional*. Pass :code:`True` to request a chat with the bot as a member." -" Otherwise, no additional restrictions are applied." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/keyboard_button_request_user.po b/docs/locale/en/LC_MESSAGES/api/types/keyboard_button_request_user.po deleted file mode 100644 index faf737b0..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/keyboard_button_request_user.po +++ /dev/null @@ -1,60 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2023, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2023. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/types/keyboard_button_request_user.rst:3 -msgid "KeyboardButtonRequestUser" -msgstr "" - -#: aiogram.types.keyboard_button_request_user.KeyboardButtonRequestUser:1 of -msgid "" -"This object defines the criteria used to request a suitable user. The " -"identifier of the selected user will be shared with the bot when the " -"corresponding button is pressed." -msgstr "" - -#: aiogram.types.keyboard_button_request_user.KeyboardButtonRequestUser:3 of -msgid "Source: https://core.telegram.org/bots/api#keyboardbuttonrequestuser" -msgstr "" - -#: ../../docstring -#: aiogram.types.keyboard_button_request_user.KeyboardButtonRequestUser.request_id:1 -#: of -msgid "" -"Signed 32-bit identifier of the request, which will be received back in " -"the :class:`aiogram.types.user_shared.UserShared` object. Must be unique " -"within the message" -msgstr "" - -#: ../../docstring -#: aiogram.types.keyboard_button_request_user.KeyboardButtonRequestUser.user_is_bot:1 -#: of -msgid "" -"*Optional*. Pass :code:`True` to request a bot, pass :code:`False` to " -"request a regular user. If not specified, no additional restrictions are " -"applied." -msgstr "" - -#: ../../docstring -#: aiogram.types.keyboard_button_request_user.KeyboardButtonRequestUser.user_is_premium:1 -#: of -msgid "" -"*Optional*. Pass :code:`True` to request a premium user, pass " -":code:`False` to request a non-premium user. If not specified, no " -"additional restrictions are applied." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/labeled_price.po b/docs/locale/en/LC_MESSAGES/api/types/labeled_price.po deleted file mode 100644 index 6b3f1406..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/labeled_price.po +++ /dev/null @@ -1,46 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/labeled_price.rst:3 -msgid "LabeledPrice" -msgstr "" - -#: aiogram.types.labeled_price.LabeledPrice:1 of -msgid "This object represents a portion of the price for goods or services." -msgstr "" - -#: aiogram.types.labeled_price.LabeledPrice:3 of -msgid "Source: https://core.telegram.org/bots/api#labeledprice" -msgstr "" - -#: ../../docstring aiogram.types.labeled_price.LabeledPrice.label:1 of -msgid "Portion label" -msgstr "" - -#: ../../docstring aiogram.types.labeled_price.LabeledPrice.amount:1 of -msgid "" -"Price of the product in the *smallest units* of the `currency " -"`_ " -"(integer, **not** float/double). For example, for a price of :code:`US$ " -"1.45` pass :code:`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)." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/location.po b/docs/locale/en/LC_MESSAGES/api/types/location.po deleted file mode 100644 index c3826725..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/location.po +++ /dev/null @@ -1,62 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/location.rst:3 -msgid "Location" -msgstr "" - -#: aiogram.types.location.Location:1 of -msgid "This object represents a point on the map." -msgstr "" - -#: aiogram.types.location.Location:3 of -msgid "Source: https://core.telegram.org/bots/api#location" -msgstr "" - -#: ../../docstring aiogram.types.location.Location.longitude:1 of -msgid "Longitude as defined by sender" -msgstr "" - -#: ../../docstring aiogram.types.location.Location.latitude:1 of -msgid "Latitude as defined by sender" -msgstr "" - -#: ../../docstring aiogram.types.location.Location.horizontal_accuracy:1 of -msgid "" -"*Optional*. The radius of uncertainty for the location, measured in " -"meters; 0-1500" -msgstr "" - -#: ../../docstring aiogram.types.location.Location.live_period:1 of -msgid "" -"*Optional*. Time relative to the message sending date, during which the " -"location can be updated; in seconds. For active live locations only." -msgstr "" - -#: ../../docstring aiogram.types.location.Location.heading:1 of -msgid "" -"*Optional*. The direction in which user is moving, in degrees; 1-360. For" -" active live locations only." -msgstr "" - -#: ../../docstring aiogram.types.location.Location.proximity_alert_radius:1 of -msgid "" -"*Optional*. The maximum distance for proximity alerts about approaching " -"another chat member, in meters. For sent live locations only." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/login_url.po b/docs/locale/en/LC_MESSAGES/api/types/login_url.po deleted file mode 100644 index 1aca7150..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/login_url.po +++ /dev/null @@ -1,72 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/login_url.rst:3 -msgid "LoginUrl" -msgstr "" - -#: aiogram.types.login_url.LoginUrl:1 of -msgid "" -"This object represents a parameter of the inline keyboard button used to " -"automatically authorize a user. Serves as a great replacement for the " -"`Telegram Login Widget `_ when " -"the user is coming from Telegram. All the user needs to do is tap/click a" -" button and confirm that they want to log in: Telegram apps support these" -" buttons as of `version 5.7 `_." -msgstr "" - -#: aiogram.types.login_url.LoginUrl:4 of -msgid "Sample bot: `@discussbot `_" -msgstr "" - -#: aiogram.types.login_url.LoginUrl:6 of -msgid "Source: https://core.telegram.org/bots/api#loginurl" -msgstr "" - -#: ../../docstring aiogram.types.login_url.LoginUrl.url:1 of -msgid "" -"An HTTPS URL to be opened with user authorization data added to the query" -" string when the button is pressed. If the user refuses to provide " -"authorization data, the original URL without information about the user " -"will be opened. The data added is the same as described in `Receiving " -"authorization data `_." -msgstr "" - -#: ../../docstring aiogram.types.login_url.LoginUrl.forward_text:1 of -msgid "*Optional*. New text of the button in forwarded messages." -msgstr "" - -#: ../../docstring aiogram.types.login_url.LoginUrl.bot_username:1 of -msgid "" -"*Optional*. Username of a bot, which will be used for user authorization." -" See `Setting up a bot `_ for more details. If not specified, the current bot's " -"username will be assumed. The *url*'s domain must be the same as the " -"domain linked with the bot. See `Linking your domain to the bot " -"`_ for more details." -msgstr "" - -#: ../../docstring aiogram.types.login_url.LoginUrl.request_write_access:1 of -msgid "" -"*Optional*. Pass :code:`True` to request the permission for your bot to " -"send messages to the user." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/mask_position.po b/docs/locale/en/LC_MESSAGES/api/types/mask_position.po deleted file mode 100644 index 5ab98120..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/mask_position.po +++ /dev/null @@ -1,56 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/mask_position.rst:3 -msgid "MaskPosition" -msgstr "" - -#: aiogram.types.mask_position.MaskPosition:1 of -msgid "" -"This object describes the position on faces where a mask should be placed" -" by default." -msgstr "" - -#: aiogram.types.mask_position.MaskPosition:3 of -msgid "Source: https://core.telegram.org/bots/api#maskposition" -msgstr "" - -#: ../../docstring aiogram.types.mask_position.MaskPosition.point:1 of -msgid "" -"The part of the face relative to which the mask should be placed. One of " -"'forehead', 'eyes', 'mouth', or 'chin'." -msgstr "" - -#: ../../docstring aiogram.types.mask_position.MaskPosition.x_shift:1 of -msgid "" -"Shift by X-axis measured in widths of the mask scaled to the face size, " -"from left to right. For example, choosing -1.0 will place mask just to " -"the left of the default mask position." -msgstr "" - -#: ../../docstring aiogram.types.mask_position.MaskPosition.y_shift:1 of -msgid "" -"Shift by Y-axis measured in heights of the mask scaled to the face size, " -"from top to bottom. For example, 1.0 will place the mask just below the " -"default mask position." -msgstr "" - -#: ../../docstring aiogram.types.mask_position.MaskPosition.scale:1 of -msgid "Mask scaling coefficient. For example, 2.0 means double size." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/menu_button.po b/docs/locale/en/LC_MESSAGES/api/types/menu_button.po deleted file mode 100644 index ad862f22..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/menu_button.po +++ /dev/null @@ -1,72 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/menu_button.rst:3 -msgid "MenuButton" -msgstr "" - -#: aiogram.types.menu_button.MenuButton:1 of -msgid "" -"This object describes the bot's menu button in a private chat. It should " -"be one of" -msgstr "" - -#: aiogram.types.menu_button.MenuButton:3 of -msgid ":class:`aiogram.types.menu_button_commands.MenuButtonCommands`" -msgstr "" - -#: aiogram.types.menu_button.MenuButton:4 of -msgid ":class:`aiogram.types.menu_button_web_app.MenuButtonWebApp`" -msgstr "" - -#: aiogram.types.menu_button.MenuButton:5 of -msgid ":class:`aiogram.types.menu_button_default.MenuButtonDefault`" -msgstr "" - -#: aiogram.types.menu_button.MenuButton:7 of -msgid "" -"If a menu button other than " -":class:`aiogram.types.menu_button_default.MenuButtonDefault` is set for a" -" private chat, then it is applied in the chat. Otherwise the default menu" -" button is applied. By default, the menu button opens the list of bot " -"commands." -msgstr "" - -#: aiogram.types.menu_button.MenuButton:9 of -msgid "Source: https://core.telegram.org/bots/api#menubutton" -msgstr "" - -#: ../../docstring aiogram.types.menu_button.MenuButton.type:1 of -msgid "Type of the button" -msgstr "" - -#: ../../docstring aiogram.types.menu_button.MenuButton.text:1 of -msgid "*Optional*. Text on the button" -msgstr "" - -#: ../../docstring aiogram.types.menu_button.MenuButton.web_app:1 of -msgid "" -"*Optional*. 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`." -msgstr "" - -#~ msgid "..." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/menu_button_commands.po b/docs/locale/en/LC_MESSAGES/api/types/menu_button_commands.po deleted file mode 100644 index 6e0e12cc..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/menu_button_commands.po +++ /dev/null @@ -1,35 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/menu_button_commands.rst:3 -msgid "MenuButtonCommands" -msgstr "" - -#: aiogram.types.menu_button_commands.MenuButtonCommands:1 of -msgid "Represents a menu button, which opens the bot's list of commands." -msgstr "" - -#: aiogram.types.menu_button_commands.MenuButtonCommands:3 of -msgid "Source: https://core.telegram.org/bots/api#menubuttoncommands" -msgstr "" - -#: ../../docstring aiogram.types.menu_button_commands.MenuButtonCommands.type:1 -#: of -msgid "Type of the button, must be *commands*" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/menu_button_default.po b/docs/locale/en/LC_MESSAGES/api/types/menu_button_default.po deleted file mode 100644 index 93e8b337..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/menu_button_default.po +++ /dev/null @@ -1,35 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/menu_button_default.rst:3 -msgid "MenuButtonDefault" -msgstr "" - -#: aiogram.types.menu_button_default.MenuButtonDefault:1 of -msgid "Describes that no specific value for the menu button was set." -msgstr "" - -#: aiogram.types.menu_button_default.MenuButtonDefault:3 of -msgid "Source: https://core.telegram.org/bots/api#menubuttondefault" -msgstr "" - -#: ../../docstring aiogram.types.menu_button_default.MenuButtonDefault.type:1 -#: of -msgid "Type of the button, must be *default*" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/menu_button_web_app.po b/docs/locale/en/LC_MESSAGES/api/types/menu_button_web_app.po deleted file mode 100644 index 21b08c57..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/menu_button_web_app.po +++ /dev/null @@ -1,49 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/menu_button_web_app.rst:3 -msgid "MenuButtonWebApp" -msgstr "" - -#: aiogram.types.menu_button_web_app.MenuButtonWebApp:1 of -msgid "" -"Represents a menu button, which launches a `Web App " -"`_." -msgstr "" - -#: aiogram.types.menu_button_web_app.MenuButtonWebApp:3 of -msgid "Source: https://core.telegram.org/bots/api#menubuttonwebapp" -msgstr "" - -#: ../../docstring aiogram.types.menu_button_web_app.MenuButtonWebApp.type:1 of -msgid "Type of the button, must be *web_app*" -msgstr "" - -#: ../../docstring aiogram.types.menu_button_web_app.MenuButtonWebApp.text:1 of -msgid "Text on the button" -msgstr "" - -#: ../../docstring aiogram.types.menu_button_web_app.MenuButtonWebApp.web_app:1 -#: of -msgid "" -"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`." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/message.po b/docs/locale/en/LC_MESSAGES/api/types/message.po deleted file mode 100644 index b3f65085..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/message.po +++ /dev/null @@ -1,2564 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/types/message.rst:3 -msgid "Message" -msgstr "" - -#: aiogram.types.message.Message:1 of -msgid "This object represents a message." -msgstr "" - -#: aiogram.types.message.Message:3 of -msgid "Source: https://core.telegram.org/bots/api#message" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.message_id:1 of -msgid "Unique message identifier inside this chat" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.date:1 of -msgid "Date the message was sent in Unix time" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.chat:1 of -msgid "Conversation the message belongs to" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.message_thread_id:1 of -msgid "" -"*Optional*. Unique identifier of a message thread to which the message " -"belongs; for supergroups only" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.from_user:1 of -msgid "" -"*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." -msgstr "" - -#: ../../docstring aiogram.types.message.Message.sender_chat:1 of -msgid "" -"*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." -msgstr "" - -#: ../../docstring aiogram.types.message.Message.forward_from:1 of -msgid "*Optional*. For forwarded messages, sender of the original message" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.forward_from_chat:1 of -msgid "" -"*Optional*. For messages forwarded from channels or from anonymous " -"administrators, information about the original sender chat" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.forward_from_message_id:1 of -msgid "" -"*Optional*. For messages forwarded from channels, identifier of the " -"original message in the channel" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.forward_signature:1 of -msgid "" -"*Optional*. For forwarded messages that were originally sent in channels " -"or by an anonymous chat administrator, signature of the message sender if" -" present" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.forward_sender_name:1 of -msgid "" -"*Optional*. Sender's name for messages forwarded from users who disallow " -"adding a link to their account in forwarded messages" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.forward_date:1 of -msgid "" -"*Optional*. For forwarded messages, date the original message was sent in" -" Unix time" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.is_topic_message:1 of -msgid "*Optional*. :code:`True`, if the message is sent to a forum topic" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.is_automatic_forward:1 of -msgid "" -"*Optional*. :code:`True`, if the message is a channel post that was " -"automatically forwarded to the connected discussion group" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.reply_to_message:1 of -msgid "" -"*Optional*. For replies, the original message. Note that the Message " -"object in this field will not contain further *reply_to_message* fields " -"even if it itself is a reply." -msgstr "" - -#: ../../docstring aiogram.types.message.Message.via_bot:1 of -msgid "*Optional*. Bot through which the message was sent" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.edit_date:1 of -msgid "*Optional*. Date the message was last edited in Unix time" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.has_protected_content:1 of -msgid "*Optional*. :code:`True`, if the message can't be forwarded" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.media_group_id:1 of -msgid "" -"*Optional*. The unique identifier of a media message group this message " -"belongs to" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.author_signature:1 of -msgid "" -"*Optional*. Signature of the post author for messages in channels, or the" -" custom title of an anonymous group administrator" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.text:1 of -msgid "*Optional*. For text messages, the actual UTF-8 text of the message" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.entities:1 of -msgid "" -"*Optional*. For text messages, special entities like usernames, URLs, bot" -" commands, etc. that appear in the text" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.animation:1 of -msgid "" -"*Optional*. Message is an animation, information about the animation. For" -" backward compatibility, when this field is set, the *document* field " -"will also be set" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.audio:1 of -msgid "*Optional*. Message is an audio file, information about the file" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.document:1 of -msgid "*Optional*. Message is a general file, information about the file" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.photo:1 of -msgid "*Optional*. Message is a photo, available sizes of the photo" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.sticker:1 of -msgid "*Optional*. Message is a sticker, information about the sticker" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.video:1 of -msgid "*Optional*. Message is a video, information about the video" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.video_note:1 of -msgid "" -"*Optional*. Message is a `video note `_, information about the video message" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.voice:1 of -msgid "*Optional*. Message is a voice message, information about the file" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.caption:1 of -msgid "" -"*Optional*. Caption for the animation, audio, document, photo, video or " -"voice" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.caption_entities:1 of -msgid "" -"*Optional*. For messages with a caption, special entities like usernames," -" URLs, bot commands, etc. that appear in the caption" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.has_media_spoiler:1 of -msgid "" -"*Optional*. :code:`True`, if the message media is covered by a spoiler " -"animation" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.contact:1 of -msgid "*Optional*. Message is a shared contact, information about the contact" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.dice:1 of -msgid "*Optional*. Message is a dice with random value" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.game:1 of -msgid "" -"*Optional*. Message is a game, information about the game. `More about " -"games » `_" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.poll:1 of -msgid "*Optional*. Message is a native poll, information about the poll" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.venue:1 of -msgid "" -"*Optional*. Message is a venue, information about the venue. For backward" -" compatibility, when this field is set, the *location* field will also be" -" set" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.location:1 of -msgid "*Optional*. Message is a shared location, information about the location" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.new_chat_members:1 of -msgid "" -"*Optional*. New members that were added to the group or supergroup and " -"information about them (the bot itself may be one of these members)" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.left_chat_member:1 of -msgid "" -"*Optional*. A member was removed from the group, information about them " -"(this member may be the bot itself)" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.new_chat_title:1 of -msgid "*Optional*. A chat title was changed to this value" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.new_chat_photo:1 of -msgid "*Optional*. A chat photo was change to this value" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.delete_chat_photo:1 of -msgid "*Optional*. Service message: the chat photo was deleted" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.group_chat_created:1 of -msgid "*Optional*. Service message: the group has been created" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.supergroup_chat_created:1 of -msgid "" -"*Optional*. Service message: the supergroup has been created. This field " -"can't be received in a message coming through updates, because bot can't " -"be a member of a supergroup when it is created. It can only be found in " -"reply_to_message if someone replies to a very first message in a directly" -" created supergroup." -msgstr "" - -#: ../../docstring aiogram.types.message.Message.channel_chat_created:1 of -msgid "" -"*Optional*. Service message: the channel has been created. This field " -"can't be received in a message coming through updates, because bot can't " -"be a member of a channel when it is created. It can only be found in " -"reply_to_message if someone replies to a very first message in a channel." -msgstr "" - -#: ../../docstring -#: aiogram.types.message.Message.message_auto_delete_timer_changed:1 of -msgid "" -"*Optional*. Service message: auto-delete timer settings changed in the " -"chat" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.migrate_to_chat_id:1 of -msgid "" -"*Optional*. The group has been migrated to a supergroup with the " -"specified identifier. This number may have more than 32 significant bits " -"and some programming languages may have difficulty/silent defects in " -"interpreting it. But it has at most 52 significant bits, so a signed " -"64-bit integer or double-precision float type are safe for storing this " -"identifier." -msgstr "" - -#: ../../docstring aiogram.types.message.Message.migrate_from_chat_id:1 of -msgid "" -"*Optional*. The supergroup has been migrated from a group with the " -"specified identifier. This number may have more than 32 significant bits " -"and some programming languages may have difficulty/silent defects in " -"interpreting it. But it has at most 52 significant bits, so a signed " -"64-bit integer or double-precision float type are safe for storing this " -"identifier." -msgstr "" - -#: ../../docstring aiogram.types.message.Message.pinned_message:1 of -msgid "" -"*Optional*. Specified message was pinned. Note that the Message object in" -" this field will not contain further *reply_to_message* fields even if it" -" is itself a reply." -msgstr "" - -#: ../../docstring aiogram.types.message.Message.invoice:1 of -msgid "" -"*Optional*. Message is an invoice for a `payment " -"`_, information about the " -"invoice. `More about payments » " -"`_" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.successful_payment:1 of -msgid "" -"*Optional*. Message is a service message about a successful payment, " -"information about the payment. `More about payments » " -"`_" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.user_shared:1 of -msgid "*Optional*. Service message: a user was shared with the bot" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.chat_shared:1 of -msgid "*Optional*. Service message: a chat was shared with the bot" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.connected_website:1 of -msgid "" -"*Optional*. The domain name of the website on which the user has logged " -"in. `More about Telegram Login » " -"`_" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.write_access_allowed:1 of -msgid "" -"*Optional*. Service message: the user allowed the bot added to the " -"attachment menu to write messages" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.passport_data:1 of -msgid "*Optional*. Telegram Passport data" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.proximity_alert_triggered:1 of -msgid "" -"*Optional*. Service message. A user in the chat triggered another user's " -"proximity alert while sharing Live Location." -msgstr "" - -#: ../../docstring aiogram.types.message.Message.forum_topic_created:1 of -msgid "*Optional*. Service message: forum topic created" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.forum_topic_edited:1 of -msgid "*Optional*. Service message: forum topic edited" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.forum_topic_closed:1 of -msgid "*Optional*. Service message: forum topic closed" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.forum_topic_reopened:1 of -msgid "*Optional*. Service message: forum topic reopened" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.general_forum_topic_hidden:1 -#: of -msgid "*Optional*. Service message: the 'General' forum topic hidden" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.general_forum_topic_unhidden:1 -#: of -msgid "*Optional*. Service message: the 'General' forum topic unhidden" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.video_chat_scheduled:1 of -msgid "*Optional*. Service message: video chat scheduled" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.video_chat_started:1 of -msgid "*Optional*. Service message: video chat started" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.video_chat_ended:1 of -msgid "*Optional*. Service message: video chat ended" -msgstr "" - -#: ../../docstring -#: aiogram.types.message.Message.video_chat_participants_invited:1 of -msgid "*Optional*. Service message: new participants invited to a video chat" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.web_app_data:1 of -msgid "*Optional*. Service message: data sent by a Web App" -msgstr "" - -#: ../../docstring aiogram.types.message.Message.reply_markup:1 of -msgid "" -"*Optional*. Inline keyboard attached to the message. :code:`login_url` " -"buttons are represented as ordinary :code:`url` buttons." -msgstr "" - -#: aiogram.types.message.Message.answer_animation:1 -#: aiogram.types.message.Message.reply_animation:1 of -msgid "" -"Shortcut for method :class:`aiogram.methods.send_animation.SendAnimation`" -" will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.answer:4 -#: aiogram.types.message.Message.answer_animation:4 -#: aiogram.types.message.Message.answer_audio:4 -#: aiogram.types.message.Message.answer_contact:4 -#: aiogram.types.message.Message.answer_dice:4 -#: aiogram.types.message.Message.answer_document:4 -#: aiogram.types.message.Message.answer_game:4 -#: aiogram.types.message.Message.answer_invoice:4 -#: aiogram.types.message.Message.answer_location:4 -#: aiogram.types.message.Message.answer_media_group:4 -#: aiogram.types.message.Message.answer_photo:4 -#: aiogram.types.message.Message.answer_poll:4 -#: aiogram.types.message.Message.answer_sticker:4 -#: aiogram.types.message.Message.answer_venue:4 -#: aiogram.types.message.Message.answer_video:4 -#: aiogram.types.message.Message.answer_video_note:4 -#: aiogram.types.message.Message.answer_voice:4 -#: aiogram.types.message.Message.delete:4 -#: aiogram.types.message.Message.edit_caption:4 -#: aiogram.types.message.Message.edit_live_location:4 -#: aiogram.types.message.Message.edit_media:4 -#: aiogram.types.message.Message.edit_reply_markup:4 -#: aiogram.types.message.Message.edit_text:4 -#: aiogram.types.message.Message.pin:4 aiogram.types.message.Message.reply:4 -#: aiogram.types.message.Message.reply_animation:4 -#: aiogram.types.message.Message.reply_audio:4 -#: aiogram.types.message.Message.reply_contact:4 -#: aiogram.types.message.Message.reply_dice:4 -#: aiogram.types.message.Message.reply_document:4 -#: aiogram.types.message.Message.reply_game:4 -#: aiogram.types.message.Message.reply_invoice:4 -#: aiogram.types.message.Message.reply_location:4 -#: aiogram.types.message.Message.reply_media_group:4 -#: aiogram.types.message.Message.reply_photo:4 -#: aiogram.types.message.Message.reply_poll:4 -#: aiogram.types.message.Message.reply_sticker:4 -#: aiogram.types.message.Message.reply_venue:4 -#: aiogram.types.message.Message.reply_video:4 -#: aiogram.types.message.Message.reply_video_note:4 -#: aiogram.types.message.Message.reply_voice:4 -#: aiogram.types.message.Message.stop_live_location:4 -#: aiogram.types.message.Message.unpin:4 of -msgid ":code:`chat_id`" -msgstr "" - -#: aiogram.types.message.Message.answer:5 -#: aiogram.types.message.Message.answer_animation:5 -#: aiogram.types.message.Message.answer_audio:5 -#: aiogram.types.message.Message.answer_contact:5 -#: aiogram.types.message.Message.answer_dice:5 -#: aiogram.types.message.Message.answer_document:5 -#: aiogram.types.message.Message.answer_game:5 -#: aiogram.types.message.Message.answer_invoice:5 -#: aiogram.types.message.Message.answer_location:5 -#: aiogram.types.message.Message.answer_media_group:5 -#: aiogram.types.message.Message.answer_photo:5 -#: aiogram.types.message.Message.answer_poll:5 -#: aiogram.types.message.Message.answer_sticker:5 -#: aiogram.types.message.Message.answer_venue:5 -#: aiogram.types.message.Message.answer_video:5 -#: aiogram.types.message.Message.answer_video_note:5 -#: aiogram.types.message.Message.answer_voice:5 -#: aiogram.types.message.Message.reply:5 -#: aiogram.types.message.Message.reply_animation:5 -#: aiogram.types.message.Message.reply_audio:5 -#: aiogram.types.message.Message.reply_contact:5 -#: aiogram.types.message.Message.reply_dice:5 -#: aiogram.types.message.Message.reply_document:5 -#: aiogram.types.message.Message.reply_game:5 -#: aiogram.types.message.Message.reply_invoice:5 -#: aiogram.types.message.Message.reply_location:5 -#: aiogram.types.message.Message.reply_media_group:5 -#: aiogram.types.message.Message.reply_photo:5 -#: aiogram.types.message.Message.reply_poll:5 -#: aiogram.types.message.Message.reply_sticker:5 -#: aiogram.types.message.Message.reply_venue:5 -#: aiogram.types.message.Message.reply_video:5 -#: aiogram.types.message.Message.reply_video_note:5 -#: aiogram.types.message.Message.reply_voice:5 of -msgid ":code:`message_thread_id`" -msgstr "" - -#: aiogram.types.message.Message.reply:6 -#: aiogram.types.message.Message.reply_animation:6 -#: aiogram.types.message.Message.reply_audio:6 -#: aiogram.types.message.Message.reply_contact:6 -#: aiogram.types.message.Message.reply_dice:6 -#: aiogram.types.message.Message.reply_document:6 -#: aiogram.types.message.Message.reply_game:6 -#: aiogram.types.message.Message.reply_invoice:6 -#: aiogram.types.message.Message.reply_location:6 -#: aiogram.types.message.Message.reply_media_group:6 -#: aiogram.types.message.Message.reply_photo:6 -#: aiogram.types.message.Message.reply_poll:6 -#: aiogram.types.message.Message.reply_sticker:6 -#: aiogram.types.message.Message.reply_venue:6 -#: aiogram.types.message.Message.reply_video:6 -#: aiogram.types.message.Message.reply_video_note:6 -#: aiogram.types.message.Message.reply_voice:6 of -msgid ":code:`reply_to_message_id`" -msgstr "" - -#: aiogram.types.message.Message.answer_animation:7 -#: aiogram.types.message.Message.reply_animation:8 of -msgid "" -"Use this method to send animation files (GIF or H.264/MPEG-4 AVC video " -"without sound). On success, the sent " -":class:`aiogram.types.message.Message` is returned. Bots can currently " -"send animation files of up to 50 MB in size, this limit may be changed in" -" the future." -msgstr "" - -#: aiogram.types.message.Message.answer_animation:9 -#: aiogram.types.message.Message.reply_animation:10 of -msgid "Source: https://core.telegram.org/bots/api#sendanimation" -msgstr "" - -#: aiogram.types.message.Message.answer -#: aiogram.types.message.Message.answer_animation -#: aiogram.types.message.Message.answer_audio -#: aiogram.types.message.Message.answer_contact -#: aiogram.types.message.Message.answer_dice -#: aiogram.types.message.Message.answer_document -#: aiogram.types.message.Message.answer_game -#: aiogram.types.message.Message.answer_invoice -#: aiogram.types.message.Message.answer_location -#: aiogram.types.message.Message.answer_media_group -#: aiogram.types.message.Message.answer_photo -#: aiogram.types.message.Message.answer_poll -#: aiogram.types.message.Message.answer_sticker -#: aiogram.types.message.Message.answer_venue -#: aiogram.types.message.Message.answer_video -#: aiogram.types.message.Message.answer_video_note -#: aiogram.types.message.Message.answer_voice -#: aiogram.types.message.Message.copy_to -#: aiogram.types.message.Message.edit_caption -#: aiogram.types.message.Message.edit_live_location -#: aiogram.types.message.Message.edit_media -#: aiogram.types.message.Message.edit_reply_markup -#: aiogram.types.message.Message.edit_text -#: aiogram.types.message.Message.forward aiogram.types.message.Message.get_url -#: aiogram.types.message.Message.pin aiogram.types.message.Message.reply -#: aiogram.types.message.Message.reply_animation -#: aiogram.types.message.Message.reply_audio -#: aiogram.types.message.Message.reply_contact -#: aiogram.types.message.Message.reply_dice -#: aiogram.types.message.Message.reply_document -#: aiogram.types.message.Message.reply_game -#: aiogram.types.message.Message.reply_invoice -#: aiogram.types.message.Message.reply_location -#: aiogram.types.message.Message.reply_media_group -#: aiogram.types.message.Message.reply_photo -#: aiogram.types.message.Message.reply_poll -#: aiogram.types.message.Message.reply_sticker -#: aiogram.types.message.Message.reply_venue -#: aiogram.types.message.Message.reply_video -#: aiogram.types.message.Message.reply_video_note -#: aiogram.types.message.Message.reply_voice -#: aiogram.types.message.Message.send_copy -#: aiogram.types.message.Message.stop_live_location of -msgid "Parameters" -msgstr "" - -#: aiogram.types.message.Message.answer_animation:11 -#: aiogram.types.message.Message.reply_animation:12 of -msgid "" -"Animation to send. Pass a file_id as String to send an animation that " -"exists on the Telegram servers (recommended), pass an HTTP URL as a " -"String for Telegram to get an animation from the Internet, or upload a " -"new animation using multipart/form-data. :ref:`More information on " -"Sending Files » `" -msgstr "" - -#: aiogram.types.message.Message.answer_animation:12 -#: aiogram.types.message.Message.reply_animation:13 of -msgid "Duration of sent animation in seconds" -msgstr "" - -#: aiogram.types.message.Message.answer_animation:13 -#: aiogram.types.message.Message.reply_animation:14 of -msgid "Animation width" -msgstr "" - -#: aiogram.types.message.Message.answer_animation:14 -#: aiogram.types.message.Message.reply_animation:15 of -msgid "Animation height" -msgstr "" - -#: aiogram.types.message.Message.answer_animation:15 -#: aiogram.types.message.Message.answer_audio:19 -#: aiogram.types.message.Message.answer_document:12 -#: aiogram.types.message.Message.answer_video:15 -#: aiogram.types.message.Message.answer_video_note:14 -#: aiogram.types.message.Message.reply_animation:16 -#: aiogram.types.message.Message.reply_audio:20 -#: aiogram.types.message.Message.reply_document:13 -#: aiogram.types.message.Message.reply_video:16 -#: aiogram.types.message.Message.reply_video_note:15 of -msgid "" -"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 » `" -msgstr "" - -#: aiogram.types.message.Message.answer_animation:16 -#: aiogram.types.message.Message.reply_animation:17 of -msgid "" -"Animation caption (may also be used when resending animation by " -"*file_id*), 0-1024 characters after entities parsing" -msgstr "" - -#: aiogram.types.message.Message.answer_animation:17 -#: aiogram.types.message.Message.reply_animation:18 of -msgid "" -"Mode for parsing entities in the animation caption. See `formatting " -"options `_ for " -"more details." -msgstr "" - -#: aiogram.types.message.Message.answer_animation:18 -#: aiogram.types.message.Message.answer_audio:15 -#: aiogram.types.message.Message.answer_document:15 -#: aiogram.types.message.Message.answer_photo:14 -#: aiogram.types.message.Message.answer_video:18 -#: aiogram.types.message.Message.answer_voice:14 -#: aiogram.types.message.Message.edit_caption:14 -#: aiogram.types.message.Message.reply_animation:19 -#: aiogram.types.message.Message.reply_audio:16 -#: aiogram.types.message.Message.reply_document:16 -#: aiogram.types.message.Message.reply_photo:15 -#: aiogram.types.message.Message.reply_video:19 -#: aiogram.types.message.Message.reply_voice:15 of -msgid "" -"A JSON-serialized list of special entities that appear in the caption, " -"which can be specified instead of *parse_mode*" -msgstr "" - -#: aiogram.types.message.Message.answer_animation:19 -#: aiogram.types.message.Message.reply_animation:20 of -msgid "" -"Pass :code:`True` if the animation needs to be covered with a spoiler " -"animation" -msgstr "" - -#: aiogram.types.message.Message.answer:15 -#: aiogram.types.message.Message.answer_animation:20 -#: aiogram.types.message.Message.answer_audio:20 -#: aiogram.types.message.Message.answer_contact:15 -#: aiogram.types.message.Message.answer_dice:12 -#: aiogram.types.message.Message.answer_document:17 -#: aiogram.types.message.Message.answer_game:12 -#: aiogram.types.message.Message.answer_invoice:32 -#: aiogram.types.message.Message.answer_location:17 -#: aiogram.types.message.Message.answer_photo:16 -#: aiogram.types.message.Message.answer_poll:23 -#: aiogram.types.message.Message.answer_sticker:13 -#: aiogram.types.message.Message.answer_venue:19 -#: aiogram.types.message.Message.answer_video:21 -#: aiogram.types.message.Message.answer_video_note:15 -#: aiogram.types.message.Message.answer_voice:16 -#: aiogram.types.message.Message.copy_to:16 -#: aiogram.types.message.Message.forward:13 -#: aiogram.types.message.Message.reply:16 -#: aiogram.types.message.Message.reply_animation:21 -#: aiogram.types.message.Message.reply_audio:21 -#: aiogram.types.message.Message.reply_contact:16 -#: aiogram.types.message.Message.reply_dice:13 -#: aiogram.types.message.Message.reply_document:18 -#: aiogram.types.message.Message.reply_game:13 -#: aiogram.types.message.Message.reply_invoice:33 -#: aiogram.types.message.Message.reply_location:18 -#: aiogram.types.message.Message.reply_photo:17 -#: aiogram.types.message.Message.reply_poll:24 -#: aiogram.types.message.Message.reply_sticker:14 -#: aiogram.types.message.Message.reply_venue:20 -#: aiogram.types.message.Message.reply_video:22 -#: aiogram.types.message.Message.reply_video_note:16 -#: aiogram.types.message.Message.reply_voice:17 of -msgid "" -"Sends the message `silently `_. Users will receive a notification with no sound." -msgstr "" - -#: aiogram.types.message.Message.answer:16 -#: aiogram.types.message.Message.answer_animation:21 -#: aiogram.types.message.Message.answer_audio:21 -#: aiogram.types.message.Message.answer_contact:16 -#: aiogram.types.message.Message.answer_document:18 -#: aiogram.types.message.Message.answer_game:13 -#: aiogram.types.message.Message.answer_invoice:33 -#: aiogram.types.message.Message.answer_location:18 -#: aiogram.types.message.Message.answer_photo:17 -#: aiogram.types.message.Message.answer_poll:24 -#: aiogram.types.message.Message.answer_sticker:14 -#: aiogram.types.message.Message.answer_venue:20 -#: aiogram.types.message.Message.answer_video:22 -#: aiogram.types.message.Message.answer_video_note:16 -#: aiogram.types.message.Message.answer_voice:17 -#: aiogram.types.message.Message.copy_to:17 -#: aiogram.types.message.Message.reply:17 -#: aiogram.types.message.Message.reply_animation:22 -#: aiogram.types.message.Message.reply_audio:22 -#: aiogram.types.message.Message.reply_contact:17 -#: aiogram.types.message.Message.reply_document:19 -#: aiogram.types.message.Message.reply_game:14 -#: aiogram.types.message.Message.reply_invoice:34 -#: aiogram.types.message.Message.reply_location:19 -#: aiogram.types.message.Message.reply_photo:18 -#: aiogram.types.message.Message.reply_poll:25 -#: aiogram.types.message.Message.reply_sticker:15 -#: aiogram.types.message.Message.reply_venue:21 -#: aiogram.types.message.Message.reply_video:23 -#: aiogram.types.message.Message.reply_video_note:17 -#: aiogram.types.message.Message.reply_voice:18 of -msgid "Protects the contents of the sent message from forwarding and saving" -msgstr "" - -#: aiogram.types.message.Message.answer:18 -#: aiogram.types.message.Message.answer_animation:23 -#: aiogram.types.message.Message.answer_audio:23 -#: aiogram.types.message.Message.answer_contact:18 -#: aiogram.types.message.Message.answer_dice:15 -#: aiogram.types.message.Message.answer_document:20 -#: aiogram.types.message.Message.answer_game:15 -#: aiogram.types.message.Message.answer_invoice:35 -#: aiogram.types.message.Message.answer_location:20 -#: aiogram.types.message.Message.answer_media_group:15 -#: aiogram.types.message.Message.answer_photo:19 -#: aiogram.types.message.Message.answer_poll:26 -#: aiogram.types.message.Message.answer_sticker:16 -#: aiogram.types.message.Message.answer_venue:22 -#: aiogram.types.message.Message.answer_video:24 -#: aiogram.types.message.Message.answer_video_note:18 -#: aiogram.types.message.Message.answer_voice:19 -#: aiogram.types.message.Message.copy_to:19 -#: aiogram.types.message.Message.reply:18 -#: aiogram.types.message.Message.reply_animation:23 -#: aiogram.types.message.Message.reply_audio:23 -#: aiogram.types.message.Message.reply_contact:18 -#: aiogram.types.message.Message.reply_dice:15 -#: aiogram.types.message.Message.reply_document:20 -#: aiogram.types.message.Message.reply_game:15 -#: aiogram.types.message.Message.reply_invoice:35 -#: aiogram.types.message.Message.reply_location:20 -#: aiogram.types.message.Message.reply_media_group:15 -#: aiogram.types.message.Message.reply_photo:19 -#: aiogram.types.message.Message.reply_poll:26 -#: aiogram.types.message.Message.reply_sticker:16 -#: aiogram.types.message.Message.reply_venue:22 -#: aiogram.types.message.Message.reply_video:24 -#: aiogram.types.message.Message.reply_video_note:18 -#: aiogram.types.message.Message.reply_voice:19 of -msgid "" -"Pass :code:`True` if the message should be sent even if the specified " -"replied-to message is not found" -msgstr "" - -#: aiogram.types.message.Message.answer:19 -#: aiogram.types.message.Message.answer_animation:24 -#: aiogram.types.message.Message.answer_audio:24 -#: aiogram.types.message.Message.answer_contact:19 -#: aiogram.types.message.Message.answer_dice:16 -#: aiogram.types.message.Message.answer_document:21 -#: aiogram.types.message.Message.answer_location:21 -#: aiogram.types.message.Message.answer_photo:20 -#: aiogram.types.message.Message.answer_poll:27 -#: aiogram.types.message.Message.answer_sticker:17 -#: aiogram.types.message.Message.answer_venue:23 -#: aiogram.types.message.Message.answer_video:25 -#: aiogram.types.message.Message.answer_video_note:19 -#: aiogram.types.message.Message.answer_voice:20 -#: aiogram.types.message.Message.copy_to:20 -#: aiogram.types.message.Message.reply:19 -#: aiogram.types.message.Message.reply_animation:24 -#: aiogram.types.message.Message.reply_audio:24 -#: aiogram.types.message.Message.reply_contact:19 -#: aiogram.types.message.Message.reply_dice:16 -#: aiogram.types.message.Message.reply_document:21 -#: aiogram.types.message.Message.reply_location:21 -#: aiogram.types.message.Message.reply_photo:20 -#: aiogram.types.message.Message.reply_poll:27 -#: aiogram.types.message.Message.reply_sticker:17 -#: aiogram.types.message.Message.reply_venue:23 -#: aiogram.types.message.Message.reply_video:25 -#: aiogram.types.message.Message.reply_video_note:19 -#: aiogram.types.message.Message.reply_voice:20 of -msgid "" -"Additional interface options. A JSON-serialized object for an `inline " -"keyboard `_, " -"`custom reply keyboard " -"`_, instructions to " -"remove reply keyboard or to force a reply from the user." -msgstr "" - -#: aiogram.types.message.Message.answer -#: aiogram.types.message.Message.answer_animation -#: aiogram.types.message.Message.answer_audio -#: aiogram.types.message.Message.answer_contact -#: aiogram.types.message.Message.answer_dice -#: aiogram.types.message.Message.answer_document -#: aiogram.types.message.Message.answer_game -#: aiogram.types.message.Message.answer_invoice -#: aiogram.types.message.Message.answer_location -#: aiogram.types.message.Message.answer_media_group -#: aiogram.types.message.Message.answer_photo -#: aiogram.types.message.Message.answer_poll -#: aiogram.types.message.Message.answer_sticker -#: aiogram.types.message.Message.answer_venue -#: aiogram.types.message.Message.answer_video -#: aiogram.types.message.Message.answer_video_note -#: aiogram.types.message.Message.answer_voice -#: aiogram.types.message.Message.copy_to aiogram.types.message.Message.delete -#: aiogram.types.message.Message.edit_caption -#: aiogram.types.message.Message.edit_live_location -#: aiogram.types.message.Message.edit_media -#: aiogram.types.message.Message.edit_reply_markup -#: aiogram.types.message.Message.edit_text -#: aiogram.types.message.Message.forward aiogram.types.message.Message.get_url -#: aiogram.types.message.Message.pin aiogram.types.message.Message.reply -#: aiogram.types.message.Message.reply_animation -#: aiogram.types.message.Message.reply_audio -#: aiogram.types.message.Message.reply_contact -#: aiogram.types.message.Message.reply_dice -#: aiogram.types.message.Message.reply_document -#: aiogram.types.message.Message.reply_game -#: aiogram.types.message.Message.reply_invoice -#: aiogram.types.message.Message.reply_location -#: aiogram.types.message.Message.reply_media_group -#: aiogram.types.message.Message.reply_photo -#: aiogram.types.message.Message.reply_poll -#: aiogram.types.message.Message.reply_sticker -#: aiogram.types.message.Message.reply_venue -#: aiogram.types.message.Message.reply_video -#: aiogram.types.message.Message.reply_video_note -#: aiogram.types.message.Message.reply_voice -#: aiogram.types.message.Message.send_copy -#: aiogram.types.message.Message.stop_live_location -#: aiogram.types.message.Message.unpin of -msgid "Returns" -msgstr "" - -#: aiogram.types.message.Message.answer_animation:25 -#: aiogram.types.message.Message.reply_animation:25 of -msgid "instance of method :class:`aiogram.methods.send_animation.SendAnimation`" -msgstr "" - -#: aiogram.types.message.Message.answer:17 -#: aiogram.types.message.Message.answer_animation:22 -#: aiogram.types.message.Message.answer_audio:22 -#: aiogram.types.message.Message.answer_contact:17 -#: aiogram.types.message.Message.answer_dice:14 -#: aiogram.types.message.Message.answer_document:19 -#: aiogram.types.message.Message.answer_game:14 -#: aiogram.types.message.Message.answer_invoice:34 -#: aiogram.types.message.Message.answer_location:19 -#: aiogram.types.message.Message.answer_photo:18 -#: aiogram.types.message.Message.answer_poll:25 -#: aiogram.types.message.Message.answer_sticker:15 -#: aiogram.types.message.Message.answer_venue:21 -#: aiogram.types.message.Message.answer_video:23 -#: aiogram.types.message.Message.answer_video_note:17 -#: aiogram.types.message.Message.answer_voice:18 -#: aiogram.types.message.Message.copy_to:18 of -msgid "If the message is a reply, ID of the original message" -msgstr "" - -#: aiogram.types.message.Message.answer_audio:1 -#: aiogram.types.message.Message.reply_audio:1 of -msgid "" -"Shortcut for method :class:`aiogram.methods.send_audio.SendAudio` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.answer_audio:7 -#: aiogram.types.message.Message.reply_audio:8 of -msgid "" -"Use this method to send audio files, if you want Telegram clients to " -"display them in the music player. Your audio must be in the .MP3 or .M4A " -"format. On success, the sent :class:`aiogram.types.message.Message` is " -"returned. Bots can currently send audio files of up to 50 MB in size, " -"this limit may be changed in the future. For sending voice messages, use " -"the :class:`aiogram.methods.send_voice.SendVoice` method instead." -msgstr "" - -#: aiogram.types.message.Message.answer_audio:10 -#: aiogram.types.message.Message.reply_audio:11 of -msgid "Source: https://core.telegram.org/bots/api#sendaudio" -msgstr "" - -#: aiogram.types.message.Message.answer_audio:12 -#: aiogram.types.message.Message.reply_audio:13 of -msgid "" -"Audio file to send. Pass a file_id as String to send an audio file that " -"exists on the Telegram servers (recommended), pass an HTTP URL as a " -"String for Telegram to get an audio file from the Internet, or upload a " -"new one using multipart/form-data. :ref:`More information on Sending " -"Files » `" -msgstr "" - -#: aiogram.types.message.Message.answer_audio:13 -#: aiogram.types.message.Message.reply_audio:14 of -msgid "Audio caption, 0-1024 characters after entities parsing" -msgstr "" - -#: aiogram.types.message.Message.answer_audio:14 -#: aiogram.types.message.Message.reply_audio:15 of -msgid "" -"Mode for parsing entities in the audio caption. See `formatting options " -"`_ for more " -"details." -msgstr "" - -#: aiogram.types.message.Message.answer_audio:16 -#: aiogram.types.message.Message.reply_audio:17 of -msgid "Duration of the audio in seconds" -msgstr "" - -#: aiogram.types.message.Message.answer_audio:17 -#: aiogram.types.message.Message.reply_audio:18 of -msgid "Performer" -msgstr "" - -#: aiogram.types.message.Message.answer_audio:18 -#: aiogram.types.message.Message.reply_audio:19 of -msgid "Track name" -msgstr "" - -#: aiogram.types.message.Message.answer_audio:25 -#: aiogram.types.message.Message.reply_audio:25 of -msgid "instance of method :class:`aiogram.methods.send_audio.SendAudio`" -msgstr "" - -#: aiogram.types.message.Message.answer_contact:1 -#: aiogram.types.message.Message.reply_contact:1 of -msgid "" -"Shortcut for method :class:`aiogram.methods.send_contact.SendContact` " -"will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.answer_contact:7 -#: aiogram.types.message.Message.reply_contact:8 of -msgid "" -"Use this method to send phone contacts. On success, the sent " -":class:`aiogram.types.message.Message` is returned." -msgstr "" - -#: aiogram.types.message.Message.answer_contact:9 -#: aiogram.types.message.Message.reply_contact:10 of -msgid "Source: https://core.telegram.org/bots/api#sendcontact" -msgstr "" - -#: aiogram.types.message.Message.answer_contact:11 -#: aiogram.types.message.Message.reply_contact:12 of -msgid "Contact's phone number" -msgstr "" - -#: aiogram.types.message.Message.answer_contact:12 -#: aiogram.types.message.Message.reply_contact:13 of -msgid "Contact's first name" -msgstr "" - -#: aiogram.types.message.Message.answer_contact:13 -#: aiogram.types.message.Message.reply_contact:14 of -msgid "Contact's last name" -msgstr "" - -#: aiogram.types.message.Message.answer_contact:14 -#: aiogram.types.message.Message.reply_contact:15 of -msgid "" -"Additional data about the contact in the form of a `vCard " -"`_, 0-2048 bytes" -msgstr "" - -#: aiogram.types.message.Message.answer_contact:20 -#: aiogram.types.message.Message.reply_contact:20 of -msgid "instance of method :class:`aiogram.methods.send_contact.SendContact`" -msgstr "" - -#: aiogram.types.message.Message.answer_document:1 -#: aiogram.types.message.Message.reply_document:1 of -msgid "" -"Shortcut for method :class:`aiogram.methods.send_document.SendDocument` " -"will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.answer_document:7 -#: aiogram.types.message.Message.reply_document:8 of -msgid "" -"Use this method to send general files. On success, the sent " -":class:`aiogram.types.message.Message` is returned. Bots can currently " -"send files of any type of up to 50 MB in size, this limit may be changed " -"in the future." -msgstr "" - -#: aiogram.types.message.Message.answer_document:9 -#: aiogram.types.message.Message.reply_document:10 of -msgid "Source: https://core.telegram.org/bots/api#senddocument" -msgstr "" - -#: aiogram.types.message.Message.answer_document:11 -#: aiogram.types.message.Message.reply_document:12 of -msgid "" -"File to send. Pass a file_id as String to send a file that exists on the " -"Telegram servers (recommended), 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 » `" -msgstr "" - -#: aiogram.types.message.Message.answer_document:13 -#: aiogram.types.message.Message.reply_document:14 of -msgid "" -"Document caption (may also be used when resending documents by " -"*file_id*), 0-1024 characters after entities parsing" -msgstr "" - -#: aiogram.types.message.Message.answer_document:14 -#: aiogram.types.message.Message.reply_document:15 of -msgid "" -"Mode for parsing entities in the document caption. See `formatting " -"options `_ for " -"more details." -msgstr "" - -#: aiogram.types.message.Message.answer_document:16 -#: aiogram.types.message.Message.reply_document:17 of -msgid "" -"Disables automatic server-side content type detection for files uploaded " -"using multipart/form-data" -msgstr "" - -#: aiogram.types.message.Message.answer_document:22 -#: aiogram.types.message.Message.reply_document:22 of -msgid "instance of method :class:`aiogram.methods.send_document.SendDocument`" -msgstr "" - -#: aiogram.types.message.Message.answer_game:1 -#: aiogram.types.message.Message.reply_game:1 of -msgid "" -"Shortcut for method :class:`aiogram.methods.send_game.SendGame` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.answer_game:7 -#: aiogram.types.message.Message.reply_game:8 of -msgid "" -"Use this method to send a game. On success, the sent " -":class:`aiogram.types.message.Message` is returned." -msgstr "" - -#: aiogram.types.message.Message.answer_game:9 -#: aiogram.types.message.Message.reply_game:10 of -msgid "Source: https://core.telegram.org/bots/api#sendgame" -msgstr "" - -#: aiogram.types.message.Message.answer_game:11 -#: aiogram.types.message.Message.reply_game:12 of -msgid "" -"Short name of the game, serves as the unique identifier for the game. Set" -" up your games via `@BotFather `_." -msgstr "" - -#: aiogram.types.message.Message.answer_game:16 -#: aiogram.types.message.Message.reply_game:16 of -msgid "" -"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." -msgstr "" - -#: aiogram.types.message.Message.answer_game:17 -#: aiogram.types.message.Message.reply_game:17 of -msgid "instance of method :class:`aiogram.methods.send_game.SendGame`" -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:1 -#: aiogram.types.message.Message.reply_invoice:1 of -msgid "" -"Shortcut for method :class:`aiogram.methods.send_invoice.SendInvoice` " -"will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:7 -#: aiogram.types.message.Message.reply_invoice:8 of -msgid "" -"Use this method to send invoices. On success, the sent " -":class:`aiogram.types.message.Message` is returned." -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:9 -#: aiogram.types.message.Message.reply_invoice:10 of -msgid "Source: https://core.telegram.org/bots/api#sendinvoice" -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:11 -#: aiogram.types.message.Message.reply_invoice:12 of -msgid "Product name, 1-32 characters" -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:12 -#: aiogram.types.message.Message.reply_invoice:13 of -msgid "Product description, 1-255 characters" -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:13 -#: aiogram.types.message.Message.reply_invoice:14 of -msgid "" -"Bot-defined invoice payload, 1-128 bytes. This will not be displayed to " -"the user, use for your internal processes." -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:14 -#: aiogram.types.message.Message.reply_invoice:15 of -msgid "" -"Payment provider token, obtained via `@BotFather " -"`_" -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:15 -#: aiogram.types.message.Message.reply_invoice:16 of -msgid "" -"Three-letter ISO 4217 currency code, see `more on currencies " -"`_" -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:16 -#: aiogram.types.message.Message.reply_invoice:17 of -msgid "" -"Price breakdown, a JSON-serialized list of components (e.g. product " -"price, tax, discount, delivery cost, delivery tax, bonus, etc.)" -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:17 -#: aiogram.types.message.Message.reply_invoice:18 of -msgid "" -"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" -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:18 -#: aiogram.types.message.Message.reply_invoice:19 of -msgid "" -"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*." -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:19 -#: aiogram.types.message.Message.reply_invoice:20 of -msgid "" -"Unique deep-linking parameter. If left empty, **forwarded copies** of the" -" sent message will have a *Pay* button, allowing multiple users to pay " -"directly from the forwarded message, using the same invoice. If non-" -"empty, forwarded copies of the sent message will have a *URL* button with" -" a deep link to the bot (instead of a *Pay* button), with the value used " -"as the start parameter" -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:20 -#: aiogram.types.message.Message.reply_invoice:21 of -msgid "" -"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." -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:21 -#: aiogram.types.message.Message.reply_invoice:22 of -msgid "" -"URL of the product photo for the invoice. Can be a photo of the goods or " -"a marketing image for a service. People like it better when they see what" -" they are paying for." -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:22 -#: aiogram.types.message.Message.reply_invoice:23 of -msgid "Photo size in bytes" -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:23 -#: aiogram.types.message.Message.reply_invoice:24 of -msgid "Photo width" -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:24 -#: aiogram.types.message.Message.reply_invoice:25 of -msgid "Photo height" -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:25 -#: aiogram.types.message.Message.reply_invoice:26 of -msgid "" -"Pass :code:`True` if you require the user's full name to complete the " -"order" -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:26 -#: aiogram.types.message.Message.reply_invoice:27 of -msgid "" -"Pass :code:`True` if you require the user's phone number to complete the " -"order" -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:27 -#: aiogram.types.message.Message.reply_invoice:28 of -msgid "" -"Pass :code:`True` if you require the user's email address to complete the" -" order" -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:28 -#: aiogram.types.message.Message.reply_invoice:29 of -msgid "" -"Pass :code:`True` if you require the user's shipping address to complete " -"the order" -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:29 -#: aiogram.types.message.Message.reply_invoice:30 of -msgid "Pass :code:`True` if the user's phone number should be sent to provider" -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:30 -#: aiogram.types.message.Message.reply_invoice:31 of -msgid "Pass :code:`True` if the user's email address should be sent to provider" -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:31 -#: aiogram.types.message.Message.reply_invoice:32 of -msgid "Pass :code:`True` if the final price depends on the shipping method" -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:36 -#: aiogram.types.message.Message.reply_invoice:36 of -msgid "" -"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." -msgstr "" - -#: aiogram.types.message.Message.answer_invoice:37 -#: aiogram.types.message.Message.reply_invoice:37 of -msgid "instance of method :class:`aiogram.methods.send_invoice.SendInvoice`" -msgstr "" - -#: aiogram.types.message.Message.answer_location:1 -#: aiogram.types.message.Message.reply_location:1 of -msgid "" -"Shortcut for method :class:`aiogram.methods.send_location.SendLocation` " -"will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.answer_location:7 -#: aiogram.types.message.Message.reply_location:8 of -msgid "" -"Use this method to send point on the map. On success, the sent " -":class:`aiogram.types.message.Message` is returned." -msgstr "" - -#: aiogram.types.message.Message.answer_location:9 -#: aiogram.types.message.Message.reply_location:10 of -msgid "Source: https://core.telegram.org/bots/api#sendlocation" -msgstr "" - -#: aiogram.types.message.Message.answer_location:11 -#: aiogram.types.message.Message.reply_location:12 of -msgid "Latitude of the location" -msgstr "" - -#: aiogram.types.message.Message.answer_location:12 -#: aiogram.types.message.Message.reply_location:13 of -msgid "Longitude of the location" -msgstr "" - -#: aiogram.types.message.Message.answer_location:13 -#: aiogram.types.message.Message.edit_live_location:14 -#: aiogram.types.message.Message.reply_location:14 of -msgid "The radius of uncertainty for the location, measured in meters; 0-1500" -msgstr "" - -#: aiogram.types.message.Message.answer_location:14 -#: aiogram.types.message.Message.reply_location:15 of -msgid "" -"Period in seconds for which the location will be updated (see `Live " -"Locations `_, should be between" -" 60 and 86400." -msgstr "" - -#: aiogram.types.message.Message.answer_location:15 -#: aiogram.types.message.Message.reply_location:16 of -msgid "" -"For live locations, a direction in which the user is moving, in degrees. " -"Must be between 1 and 360 if specified." -msgstr "" - -#: aiogram.types.message.Message.answer_location:16 -#: aiogram.types.message.Message.reply_location:17 of -msgid "" -"For live locations, a maximum distance for proximity alerts about " -"approaching another chat member, in meters. Must be between 1 and 100000 " -"if specified." -msgstr "" - -#: aiogram.types.message.Message.answer_location:22 -#: aiogram.types.message.Message.reply_location:22 of -msgid "instance of method :class:`aiogram.methods.send_location.SendLocation`" -msgstr "" - -#: aiogram.types.message.Message.answer_media_group:1 -#: aiogram.types.message.Message.reply_media_group:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.send_media_group.SendMediaGroup` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.answer_media_group:7 -#: aiogram.types.message.Message.reply_media_group:8 of -msgid "" -"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." -msgstr "" - -#: aiogram.types.message.Message.answer_media_group:9 -#: aiogram.types.message.Message.reply_media_group:10 of -msgid "Source: https://core.telegram.org/bots/api#sendmediagroup" -msgstr "" - -#: aiogram.types.message.Message.answer_media_group:11 -#: aiogram.types.message.Message.reply_media_group:12 of -msgid "" -"A JSON-serialized array describing messages to be sent, must include 2-10" -" items" -msgstr "" - -#: aiogram.types.message.Message.answer_media_group:12 -#: aiogram.types.message.Message.reply_media_group:13 of -msgid "" -"Sends messages `silently `_. Users will receive a notification with no sound." -msgstr "" - -#: aiogram.types.message.Message.answer_media_group:13 -#: aiogram.types.message.Message.reply_media_group:14 of -msgid "Protects the contents of the sent messages from forwarding and saving" -msgstr "" - -#: aiogram.types.message.Message.answer_media_group:16 -#: aiogram.types.message.Message.reply_media_group:16 of -msgid "" -"instance of method " -":class:`aiogram.methods.send_media_group.SendMediaGroup`" -msgstr "" - -#: aiogram.types.message.Message.answer_media_group:14 of -msgid "If the messages are a reply, ID of the original message" -msgstr "" - -#: aiogram.types.message.Message.answer:1 aiogram.types.message.Message.reply:1 -#: of -msgid "" -"Shortcut for method :class:`aiogram.methods.send_message.SendMessage` " -"will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.answer:7 aiogram.types.message.Message.reply:8 -#: of -msgid "" -"Use this method to send text messages. On success, the sent " -":class:`aiogram.types.message.Message` is returned." -msgstr "" - -#: aiogram.types.message.Message.answer:9 -#: aiogram.types.message.Message.reply:10 of -msgid "Source: https://core.telegram.org/bots/api#sendmessage" -msgstr "" - -#: aiogram.types.message.Message.answer:11 -#: aiogram.types.message.Message.reply:12 of -msgid "Text of the message to be sent, 1-4096 characters after entities parsing" -msgstr "" - -#: aiogram.types.message.Message.answer:12 -#: aiogram.types.message.Message.edit_text:13 -#: aiogram.types.message.Message.reply:13 of -msgid "" -"Mode for parsing entities in the message text. See `formatting options " -"`_ for more " -"details." -msgstr "" - -#: aiogram.types.message.Message.answer:13 -#: aiogram.types.message.Message.edit_text:14 -#: aiogram.types.message.Message.reply:14 of -msgid "" -"A JSON-serialized list of special entities that appear in message text, " -"which can be specified instead of *parse_mode*" -msgstr "" - -#: aiogram.types.message.Message.answer:14 -#: aiogram.types.message.Message.edit_text:15 -#: aiogram.types.message.Message.reply:15 of -msgid "Disables link previews for links in this message" -msgstr "" - -#: aiogram.types.message.Message.answer:20 -#: aiogram.types.message.Message.reply:20 of -msgid "instance of method :class:`aiogram.methods.send_message.SendMessage`" -msgstr "" - -#: aiogram.types.message.Message.answer_photo:1 -#: aiogram.types.message.Message.reply_photo:1 of -msgid "" -"Shortcut for method :class:`aiogram.methods.send_photo.SendPhoto` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.answer_photo:7 -#: aiogram.types.message.Message.reply_photo:8 of -msgid "" -"Use this method to send photos. On success, the sent " -":class:`aiogram.types.message.Message` is returned." -msgstr "" - -#: aiogram.types.message.Message.answer_photo:9 -#: aiogram.types.message.Message.reply_photo:10 of -msgid "Source: https://core.telegram.org/bots/api#sendphoto" -msgstr "" - -#: aiogram.types.message.Message.answer_photo:11 -#: aiogram.types.message.Message.reply_photo:12 of -msgid "" -"Photo to send. Pass a file_id as String to send a photo that exists on " -"the Telegram servers (recommended), pass an HTTP URL as a String for " -"Telegram to get a photo from the Internet, or upload a new photo using " -"multipart/form-data. The photo must be at most 10 MB in size. The photo's" -" width and height must not exceed 10000 in total. Width and height ratio " -"must be at most 20. :ref:`More information on Sending Files » `" -msgstr "" - -#: aiogram.types.message.Message.answer_photo:12 -#: aiogram.types.message.Message.reply_photo:13 of -msgid "" -"Photo caption (may also be used when resending photos by *file_id*), " -"0-1024 characters after entities parsing" -msgstr "" - -#: aiogram.types.message.Message.answer_photo:13 -#: aiogram.types.message.Message.reply_photo:14 of -msgid "" -"Mode for parsing entities in the photo caption. See `formatting options " -"`_ for more " -"details." -msgstr "" - -#: aiogram.types.message.Message.answer_photo:15 -#: aiogram.types.message.Message.reply_photo:16 of -msgid "" -"Pass :code:`True` if the photo needs to be covered with a spoiler " -"animation" -msgstr "" - -#: aiogram.types.message.Message.answer_photo:21 -#: aiogram.types.message.Message.reply_photo:21 of -msgid "instance of method :class:`aiogram.methods.send_photo.SendPhoto`" -msgstr "" - -#: aiogram.types.message.Message.answer_poll:1 -#: aiogram.types.message.Message.reply_poll:1 of -msgid "" -"Shortcut for method :class:`aiogram.methods.send_poll.SendPoll` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.answer_poll:7 -#: aiogram.types.message.Message.reply_poll:8 of -msgid "" -"Use this method to send a native poll. On success, the sent " -":class:`aiogram.types.message.Message` is returned." -msgstr "" - -#: aiogram.types.message.Message.answer_poll:9 -#: aiogram.types.message.Message.reply_poll:10 of -msgid "Source: https://core.telegram.org/bots/api#sendpoll" -msgstr "" - -#: aiogram.types.message.Message.answer_poll:11 -#: aiogram.types.message.Message.reply_poll:12 of -msgid "Poll question, 1-300 characters" -msgstr "" - -#: aiogram.types.message.Message.answer_poll:12 -#: aiogram.types.message.Message.reply_poll:13 of -msgid "" -"A JSON-serialized list of answer options, 2-10 strings 1-100 characters " -"each" -msgstr "" - -#: aiogram.types.message.Message.answer_poll:13 -#: aiogram.types.message.Message.reply_poll:14 of -msgid ":code:`True`, if the poll needs to be anonymous, defaults to :code:`True`" -msgstr "" - -#: aiogram.types.message.Message.answer_poll:14 -#: aiogram.types.message.Message.reply_poll:15 of -msgid "Poll type, 'quiz' or 'regular', defaults to 'regular'" -msgstr "" - -#: aiogram.types.message.Message.answer_poll:15 -#: aiogram.types.message.Message.reply_poll:16 of -msgid "" -":code:`True`, if the poll allows multiple answers, ignored for polls in " -"quiz mode, defaults to :code:`False`" -msgstr "" - -#: aiogram.types.message.Message.answer_poll:16 -#: aiogram.types.message.Message.reply_poll:17 of -msgid "" -"0-based identifier of the correct answer option, required for polls in " -"quiz mode" -msgstr "" - -#: aiogram.types.message.Message.answer_poll:17 -#: aiogram.types.message.Message.reply_poll:18 of -msgid "" -"Text that is shown when a user chooses an incorrect answer or taps on the" -" lamp icon in a quiz-style poll, 0-200 characters with at most 2 line " -"feeds after entities parsing" -msgstr "" - -#: aiogram.types.message.Message.answer_poll:18 -#: aiogram.types.message.Message.reply_poll:19 of -msgid "" -"Mode for parsing entities in the explanation. See `formatting options " -"`_ for more " -"details." -msgstr "" - -#: aiogram.types.message.Message.answer_poll:19 -#: aiogram.types.message.Message.reply_poll:20 of -msgid "" -"A JSON-serialized list of special entities that appear in the poll " -"explanation, which can be specified instead of *parse_mode*" -msgstr "" - -#: aiogram.types.message.Message.answer_poll:20 -#: aiogram.types.message.Message.reply_poll:21 of -msgid "" -"Amount of time in seconds the poll will be active after creation, 5-600. " -"Can't be used together with *close_date*." -msgstr "" - -#: aiogram.types.message.Message.answer_poll:21 -#: aiogram.types.message.Message.reply_poll:22 of -msgid "" -"Point in time (Unix timestamp) when the poll will be automatically " -"closed. Must be at least 5 and no more than 600 seconds in the future. " -"Can't be used together with *open_period*." -msgstr "" - -#: aiogram.types.message.Message.answer_poll:22 -#: aiogram.types.message.Message.reply_poll:23 of -msgid "" -"Pass :code:`True` if the poll needs to be immediately closed. This can be" -" useful for poll preview." -msgstr "" - -#: aiogram.types.message.Message.answer_poll:28 -#: aiogram.types.message.Message.reply_poll:28 of -msgid "instance of method :class:`aiogram.methods.send_poll.SendPoll`" -msgstr "" - -#: aiogram.types.message.Message.answer_dice:1 -#: aiogram.types.message.Message.reply_dice:1 of -msgid "" -"Shortcut for method :class:`aiogram.methods.send_dice.SendDice` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.answer_dice:7 -#: aiogram.types.message.Message.reply_dice:8 of -msgid "" -"Use this method to send an animated emoji that will display a random " -"value. On success, the sent :class:`aiogram.types.message.Message` is " -"returned." -msgstr "" - -#: aiogram.types.message.Message.answer_dice:9 -#: aiogram.types.message.Message.reply_dice:10 of -msgid "Source: https://core.telegram.org/bots/api#senddice" -msgstr "" - -#: aiogram.types.message.Message.answer_dice:11 -#: aiogram.types.message.Message.reply_dice:12 of -msgid "" -"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 '🎲'" -msgstr "" - -#: aiogram.types.message.Message.answer_dice:13 -#: aiogram.types.message.Message.reply_dice:14 of -msgid "Protects the contents of the sent message from forwarding" -msgstr "" - -#: aiogram.types.message.Message.answer_dice:17 -#: aiogram.types.message.Message.reply_dice:17 of -msgid "instance of method :class:`aiogram.methods.send_dice.SendDice`" -msgstr "" - -#: aiogram.types.message.Message.answer_sticker:1 -#: aiogram.types.message.Message.reply_sticker:1 of -msgid "" -"Shortcut for method :class:`aiogram.methods.send_sticker.SendSticker` " -"will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.answer_sticker:7 -#: aiogram.types.message.Message.reply_sticker:8 of -msgid "" -"Use this method to send static .WEBP, `animated " -"`_ .TGS, or `video " -"`_ .WEBM " -"stickers. On success, the sent :class:`aiogram.types.message.Message` is " -"returned." -msgstr "" - -#: aiogram.types.message.Message.answer_sticker:9 -#: aiogram.types.message.Message.reply_sticker:10 of -msgid "Source: https://core.telegram.org/bots/api#sendsticker" -msgstr "" - -#: aiogram.types.message.Message.answer_sticker:11 -#: aiogram.types.message.Message.reply_sticker:12 of -msgid "" -"Sticker to send. Pass a file_id as String to send a file that exists on " -"the Telegram servers (recommended), pass an HTTP URL as a String for " -"Telegram to get a .WEBP sticker from the Internet, or upload a new .WEBP " -"or .TGS sticker using multipart/form-data. :ref:`More information on " -"Sending Files » `. Video stickers can only be sent by a " -"file_id. Animated stickers can't be sent via an HTTP URL." -msgstr "" - -#: aiogram.types.message.Message.answer_sticker:12 -#: aiogram.types.message.Message.reply_sticker:13 of -msgid "Emoji associated with the sticker; only for just uploaded stickers" -msgstr "" - -#: aiogram.types.message.Message.answer_sticker:18 -#: aiogram.types.message.Message.reply_sticker:18 of -msgid "instance of method :class:`aiogram.methods.send_sticker.SendSticker`" -msgstr "" - -#: aiogram.types.message.Message.answer_venue:1 -#: aiogram.types.message.Message.reply_venue:1 of -msgid "" -"Shortcut for method :class:`aiogram.methods.send_venue.SendVenue` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.answer_venue:7 -#: aiogram.types.message.Message.reply_venue:8 of -msgid "" -"Use this method to send information about a venue. On success, the sent " -":class:`aiogram.types.message.Message` is returned." -msgstr "" - -#: aiogram.types.message.Message.answer_venue:9 -#: aiogram.types.message.Message.reply_venue:10 of -msgid "Source: https://core.telegram.org/bots/api#sendvenue" -msgstr "" - -#: aiogram.types.message.Message.answer_venue:11 -#: aiogram.types.message.Message.reply_venue:12 of -msgid "Latitude of the venue" -msgstr "" - -#: aiogram.types.message.Message.answer_venue:12 -#: aiogram.types.message.Message.reply_venue:13 of -msgid "Longitude of the venue" -msgstr "" - -#: aiogram.types.message.Message.answer_venue:13 -#: aiogram.types.message.Message.reply_venue:14 of -msgid "Name of the venue" -msgstr "" - -#: aiogram.types.message.Message.answer_venue:14 -#: aiogram.types.message.Message.reply_venue:15 of -msgid "Address of the venue" -msgstr "" - -#: aiogram.types.message.Message.answer_venue:15 -#: aiogram.types.message.Message.reply_venue:16 of -msgid "Foursquare identifier of the venue" -msgstr "" - -#: aiogram.types.message.Message.answer_venue:16 -#: aiogram.types.message.Message.reply_venue:17 of -msgid "" -"Foursquare type of the venue, if known. (For example, " -"'arts_entertainment/default', 'arts_entertainment/aquarium' or " -"'food/icecream'.)" -msgstr "" - -#: aiogram.types.message.Message.answer_venue:17 -#: aiogram.types.message.Message.reply_venue:18 of -msgid "Google Places identifier of the venue" -msgstr "" - -#: aiogram.types.message.Message.answer_venue:18 -#: aiogram.types.message.Message.reply_venue:19 of -msgid "" -"Google Places type of the venue. (See `supported types " -"`_.)" -msgstr "" - -#: aiogram.types.message.Message.answer_venue:24 -#: aiogram.types.message.Message.reply_venue:24 of -msgid "instance of method :class:`aiogram.methods.send_venue.SendVenue`" -msgstr "" - -#: aiogram.types.message.Message.answer_video:1 -#: aiogram.types.message.Message.reply_video:1 of -msgid "" -"Shortcut for method :class:`aiogram.methods.send_video.SendVideo` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.answer_video:7 -#: aiogram.types.message.Message.reply_video:8 of -msgid "" -"Use this method to send video files, Telegram clients support MPEG4 " -"videos (other formats may be sent as " -":class:`aiogram.types.document.Document`). On success, the sent " -":class:`aiogram.types.message.Message` is returned. Bots can currently " -"send video files of up to 50 MB in size, this limit may be changed in the" -" future." -msgstr "" - -#: aiogram.types.message.Message.answer_video:9 -#: aiogram.types.message.Message.reply_video:10 of -msgid "Source: https://core.telegram.org/bots/api#sendvideo" -msgstr "" - -#: aiogram.types.message.Message.answer_video:11 -#: aiogram.types.message.Message.reply_video:12 of -msgid "" -"Video to send. Pass a file_id as String to send a video that exists on " -"the Telegram servers (recommended), pass an HTTP URL as a String for " -"Telegram to get a video from the Internet, or upload a new video using " -"multipart/form-data. :ref:`More information on Sending Files » `" -msgstr "" - -#: aiogram.types.message.Message.answer_video:12 -#: aiogram.types.message.Message.answer_video_note:12 -#: aiogram.types.message.Message.reply_video:13 -#: aiogram.types.message.Message.reply_video_note:13 of -msgid "Duration of sent video in seconds" -msgstr "" - -#: aiogram.types.message.Message.answer_video:13 -#: aiogram.types.message.Message.reply_video:14 of -msgid "Video width" -msgstr "" - -#: aiogram.types.message.Message.answer_video:14 -#: aiogram.types.message.Message.reply_video:15 of -msgid "Video height" -msgstr "" - -#: aiogram.types.message.Message.answer_video:16 -#: aiogram.types.message.Message.reply_video:17 of -msgid "" -"Video caption (may also be used when resending videos by *file_id*), " -"0-1024 characters after entities parsing" -msgstr "" - -#: aiogram.types.message.Message.answer_video:17 -#: aiogram.types.message.Message.reply_video:18 of -msgid "" -"Mode for parsing entities in the video caption. See `formatting options " -"`_ for more " -"details." -msgstr "" - -#: aiogram.types.message.Message.answer_video:19 -#: aiogram.types.message.Message.reply_video:20 of -msgid "" -"Pass :code:`True` if the video needs to be covered with a spoiler " -"animation" -msgstr "" - -#: aiogram.types.message.Message.answer_video:20 -#: aiogram.types.message.Message.reply_video:21 of -msgid "Pass :code:`True` if the uploaded video is suitable for streaming" -msgstr "" - -#: aiogram.types.message.Message.answer_video:26 -#: aiogram.types.message.Message.reply_video:26 of -msgid "instance of method :class:`aiogram.methods.send_video.SendVideo`" -msgstr "" - -#: aiogram.types.message.Message.answer_video_note:1 -#: aiogram.types.message.Message.reply_video_note:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.send_video_note.SendVideoNote` will automatically" -" fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.answer_video_note:7 -#: aiogram.types.message.Message.reply_video_note:8 of -msgid "" -"As of `v.4.0 `_, " -"Telegram clients support rounded square MPEG4 videos of up to 1 minute " -"long. Use this method to send video messages. On success, the sent " -":class:`aiogram.types.message.Message` is returned." -msgstr "" - -#: aiogram.types.message.Message.answer_video_note:9 -#: aiogram.types.message.Message.reply_video_note:10 of -msgid "Source: https://core.telegram.org/bots/api#sendvideonote" -msgstr "" - -#: aiogram.types.message.Message.answer_video_note:11 -#: aiogram.types.message.Message.reply_video_note:12 of -msgid "" -"Video note to send. Pass a file_id as String to send a video note that " -"exists on the Telegram servers (recommended) or upload a new video using " -"multipart/form-data. :ref:`More information on Sending Files » `. Sending video notes by a URL is currently unsupported" -msgstr "" - -#: aiogram.types.message.Message.answer_video_note:13 -#: aiogram.types.message.Message.reply_video_note:14 of -msgid "Video width and height, i.e. diameter of the video message" -msgstr "" - -#: aiogram.types.message.Message.answer_video_note:20 -#: aiogram.types.message.Message.reply_video_note:20 of -msgid "instance of method :class:`aiogram.methods.send_video_note.SendVideoNote`" -msgstr "" - -#: aiogram.types.message.Message.answer_voice:1 -#: aiogram.types.message.Message.reply_voice:1 of -msgid "" -"Shortcut for method :class:`aiogram.methods.send_voice.SendVoice` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.answer_voice:7 -#: aiogram.types.message.Message.reply_voice:8 of -msgid "" -"Use this method to send audio files, if you want Telegram clients to " -"display the file as a playable voice message. For this to work, your " -"audio must be in an .OGG file encoded with OPUS (other formats may be " -"sent as :class:`aiogram.types.audio.Audio` or " -":class:`aiogram.types.document.Document`). On success, the sent " -":class:`aiogram.types.message.Message` is returned. Bots can currently " -"send voice messages of up to 50 MB in size, this limit may be changed in " -"the future." -msgstr "" - -#: aiogram.types.message.Message.answer_voice:9 -#: aiogram.types.message.Message.reply_voice:10 of -msgid "Source: https://core.telegram.org/bots/api#sendvoice" -msgstr "" - -#: aiogram.types.message.Message.answer_voice:11 -#: aiogram.types.message.Message.reply_voice:12 of -msgid "" -"Audio file to send. Pass a file_id as String to send a file that exists " -"on the Telegram servers (recommended), 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 » `" -msgstr "" - -#: aiogram.types.message.Message.answer_voice:12 -#: aiogram.types.message.Message.reply_voice:13 of -msgid "Voice message caption, 0-1024 characters after entities parsing" -msgstr "" - -#: aiogram.types.message.Message.answer_voice:13 -#: aiogram.types.message.Message.reply_voice:14 of -msgid "" -"Mode for parsing entities in the voice message caption. See `formatting " -"options `_ for " -"more details." -msgstr "" - -#: aiogram.types.message.Message.answer_voice:15 -#: aiogram.types.message.Message.reply_voice:16 of -msgid "Duration of the voice message in seconds" -msgstr "" - -#: aiogram.types.message.Message.answer_voice:21 -#: aiogram.types.message.Message.reply_voice:21 of -msgid "instance of method :class:`aiogram.methods.send_voice.SendVoice`" -msgstr "" - -#: aiogram.types.message.Message.send_copy:1 of -msgid "Send copy of message." -msgstr "" - -#: aiogram.types.message.Message.send_copy:3 of -msgid "" -"Is similar to :meth:`aiogram.client.bot.Bot.copy_message` but returning " -"the sent message instead of :class:`aiogram.types.message_id.MessageId`" -msgstr "" - -#: aiogram.types.message.Message.send_copy:8 of -msgid "" -"This method don't use the API method named `copyMessage` and historically" -" implemented before the similar method is added to API" -msgstr "" - -#: aiogram.types.message.Message.copy_to:1 of -msgid "" -"Shortcut for method :class:`aiogram.methods.copy_message.CopyMessage` " -"will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.copy_to:4 -#: aiogram.types.message.Message.forward:4 of -msgid ":code:`from_chat_id`" -msgstr "" - -#: aiogram.types.message.Message.copy_to:5 -#: aiogram.types.message.Message.delete:5 -#: aiogram.types.message.Message.edit_caption:5 -#: aiogram.types.message.Message.edit_live_location:5 -#: aiogram.types.message.Message.edit_media:5 -#: aiogram.types.message.Message.edit_reply_markup:5 -#: aiogram.types.message.Message.edit_text:5 -#: aiogram.types.message.Message.forward:5 aiogram.types.message.Message.pin:5 -#: aiogram.types.message.Message.stop_live_location:5 -#: aiogram.types.message.Message.unpin:5 of -msgid ":code:`message_id`" -msgstr "" - -#: aiogram.types.message.Message.copy_to:7 of -msgid "" -"Use this method to copy messages of any kind. Service 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." -msgstr "" - -#: aiogram.types.message.Message.copy_to:9 of -msgid "Source: https://core.telegram.org/bots/api#copymessage" -msgstr "" - -#: aiogram.types.message.Message.copy_to:11 -#: aiogram.types.message.Message.forward:11 of -msgid "" -"Unique identifier for the target chat or username of the target channel " -"(in the format :code:`@channelusername`)" -msgstr "" - -#: aiogram.types.message.Message.copy_to:12 -#: aiogram.types.message.Message.forward:12 of -msgid "" -"Unique identifier for the target message thread (topic) of the forum; for" -" forum supergroups only" -msgstr "" - -#: aiogram.types.message.Message.copy_to:13 of -msgid "" -"New caption for media, 0-1024 characters after entities parsing. If not " -"specified, the original caption is kept" -msgstr "" - -#: aiogram.types.message.Message.copy_to:14 of -msgid "" -"Mode for parsing entities in the new caption. See `formatting options " -"`_ for more " -"details." -msgstr "" - -#: aiogram.types.message.Message.copy_to:15 of -msgid "" -"A JSON-serialized list of special entities that appear in the new " -"caption, which can be specified instead of *parse_mode*" -msgstr "" - -#: aiogram.types.message.Message.copy_to:21 of -msgid "instance of method :class:`aiogram.methods.copy_message.CopyMessage`" -msgstr "" - -#: aiogram.types.message.Message.edit_text:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.edit_message_text.EditMessageText` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.edit_text:7 of -msgid "" -"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." -msgstr "" - -#: aiogram.types.message.Message.edit_text:9 of -msgid "Source: https://core.telegram.org/bots/api#editmessagetext" -msgstr "" - -#: aiogram.types.message.Message.edit_text:11 of -msgid "New text of the message, 1-4096 characters after entities parsing" -msgstr "" - -#: aiogram.types.message.Message.edit_caption:11 -#: aiogram.types.message.Message.edit_live_location:13 -#: aiogram.types.message.Message.edit_media:12 -#: aiogram.types.message.Message.edit_reply_markup:11 -#: aiogram.types.message.Message.edit_text:12 -#: aiogram.types.message.Message.stop_live_location:11 of -msgid "" -"Required if *chat_id* and *message_id* are not specified. Identifier of " -"the inline message" -msgstr "" - -#: aiogram.types.message.Message.edit_caption:15 -#: aiogram.types.message.Message.edit_reply_markup:12 -#: aiogram.types.message.Message.edit_text:16 of -msgid "" -"A JSON-serialized object for an `inline keyboard " -"`_." -msgstr "" - -#: aiogram.types.message.Message.edit_text:17 of -msgid "" -"instance of method " -":class:`aiogram.methods.edit_message_text.EditMessageText`" -msgstr "" - -#: aiogram.types.message.Message.forward:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.forward_message.ForwardMessage` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.forward:7 of -msgid "" -"Use this method to forward messages of any kind. Service messages can't " -"be forwarded. On success, the sent :class:`aiogram.types.message.Message`" -" is returned." -msgstr "" - -#: aiogram.types.message.Message.forward:9 of -msgid "Source: https://core.telegram.org/bots/api#forwardmessage" -msgstr "" - -#: aiogram.types.message.Message.forward:14 of -msgid "Protects the contents of the forwarded message from forwarding and saving" -msgstr "" - -#: aiogram.types.message.Message.forward:15 of -msgid "instance of method :class:`aiogram.methods.forward_message.ForwardMessage`" -msgstr "" - -#: aiogram.types.message.Message.edit_media:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.edit_message_media.EditMessageMedia` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.edit_media:7 of -msgid "" -"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." -msgstr "" - -#: aiogram.types.message.Message.edit_media:9 of -msgid "Source: https://core.telegram.org/bots/api#editmessagemedia" -msgstr "" - -#: aiogram.types.message.Message.edit_media:11 of -msgid "A JSON-serialized object for a new media content of the message" -msgstr "" - -#: aiogram.types.message.Message.edit_live_location:17 -#: aiogram.types.message.Message.edit_media:13 -#: aiogram.types.message.Message.stop_live_location:12 of -msgid "" -"A JSON-serialized object for a new `inline keyboard " -"`_." -msgstr "" - -#: aiogram.types.message.Message.edit_media:14 of -msgid "" -"instance of method " -":class:`aiogram.methods.edit_message_media.EditMessageMedia`" -msgstr "" - -#: aiogram.types.message.Message.edit_reply_markup:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.edit_message_reply_markup.EditMessageReplyMarkup`" -" will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.edit_reply_markup:7 of -msgid "" -"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." -msgstr "" - -#: aiogram.types.message.Message.edit_reply_markup:9 of -msgid "Source: https://core.telegram.org/bots/api#editmessagereplymarkup" -msgstr "" - -#: aiogram.types.message.Message.edit_reply_markup:13 of -msgid "" -"instance of method " -":class:`aiogram.methods.edit_message_reply_markup.EditMessageReplyMarkup`" -msgstr "" - -#: aiogram.types.message.Message.edit_live_location:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.edit_message_live_location.EditMessageLiveLocation`" -" will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.edit_live_location:7 of -msgid "" -"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." -msgstr "" - -#: aiogram.types.message.Message.edit_live_location:9 of -msgid "Source: https://core.telegram.org/bots/api#editmessagelivelocation" -msgstr "" - -#: aiogram.types.message.Message.edit_live_location:11 of -msgid "Latitude of new location" -msgstr "" - -#: aiogram.types.message.Message.edit_live_location:12 of -msgid "Longitude of new location" -msgstr "" - -#: aiogram.types.message.Message.edit_live_location:15 of -msgid "" -"Direction in which the user is moving, in degrees. Must be between 1 and " -"360 if specified." -msgstr "" - -#: aiogram.types.message.Message.edit_live_location:16 of -msgid "" -"The maximum distance for proximity alerts about approaching another chat " -"member, in meters. Must be between 1 and 100000 if specified." -msgstr "" - -#: aiogram.types.message.Message.edit_live_location:18 of -msgid "" -"instance of method " -":class:`aiogram.methods.edit_message_live_location.EditMessageLiveLocation`" -msgstr "" - -#: aiogram.types.message.Message.stop_live_location:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.stop_message_live_location.StopMessageLiveLocation`" -" will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.stop_live_location:7 of -msgid "" -"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." -msgstr "" - -#: aiogram.types.message.Message.stop_live_location:9 of -msgid "Source: https://core.telegram.org/bots/api#stopmessagelivelocation" -msgstr "" - -#: aiogram.types.message.Message.stop_live_location:13 of -msgid "" -"instance of method " -":class:`aiogram.methods.stop_message_live_location.StopMessageLiveLocation`" -msgstr "" - -#: aiogram.types.message.Message.edit_caption:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.edit_message_caption.EditMessageCaption` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.edit_caption:7 of -msgid "" -"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." -msgstr "" - -#: aiogram.types.message.Message.edit_caption:9 of -msgid "Source: https://core.telegram.org/bots/api#editmessagecaption" -msgstr "" - -#: aiogram.types.message.Message.edit_caption:12 of -msgid "New caption of the message, 0-1024 characters after entities parsing" -msgstr "" - -#: aiogram.types.message.Message.edit_caption:13 of -msgid "" -"Mode for parsing entities in the message caption. See `formatting options" -" `_ for more " -"details." -msgstr "" - -#: aiogram.types.message.Message.edit_caption:16 of -msgid "" -"instance of method " -":class:`aiogram.methods.edit_message_caption.EditMessageCaption`" -msgstr "" - -#: aiogram.types.message.Message.delete:1 of -msgid "" -"Shortcut for method :class:`aiogram.methods.delete_message.DeleteMessage`" -" will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.delete:7 of -msgid "" -"Use this method to delete a message, including service messages, with the" -" following limitations:" -msgstr "" - -#: aiogram.types.message.Message.delete:9 of -msgid "A message can only be deleted if it was sent less than 48 hours ago." -msgstr "" - -#: aiogram.types.message.Message.delete:11 of -msgid "" -"Service messages about a supergroup, channel, or forum topic creation " -"can't be deleted." -msgstr "" - -#: aiogram.types.message.Message.delete:13 of -msgid "" -"A dice message in a private chat can only be deleted if it was sent more " -"than 24 hours ago." -msgstr "" - -#: aiogram.types.message.Message.delete:15 of -msgid "" -"Bots can delete outgoing messages in private chats, groups, and " -"supergroups." -msgstr "" - -#: aiogram.types.message.Message.delete:17 of -msgid "Bots can delete incoming messages in private chats." -msgstr "" - -#: aiogram.types.message.Message.delete:19 of -msgid "" -"Bots granted *can_post_messages* permissions can delete outgoing messages" -" in channels." -msgstr "" - -#: aiogram.types.message.Message.delete:21 of -msgid "" -"If the bot is an administrator of a group, it can delete any message " -"there." -msgstr "" - -#: aiogram.types.message.Message.delete:23 of -msgid "" -"If the bot has *can_delete_messages* permission in a supergroup or a " -"channel, it can delete any message there." -msgstr "" - -#: aiogram.types.message.Message.delete:25 of -msgid "Returns :code:`True` on success." -msgstr "" - -#: aiogram.types.message.Message.delete:27 of -msgid "Source: https://core.telegram.org/bots/api#deletemessage" -msgstr "" - -#: aiogram.types.message.Message.delete:29 of -msgid "instance of method :class:`aiogram.methods.delete_message.DeleteMessage`" -msgstr "" - -#: aiogram.types.message.Message.pin:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.pin_chat_message.PinChatMessage` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.pin:7 of -msgid "" -"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." -msgstr "" - -#: aiogram.types.message.Message.pin:9 of -msgid "Source: https://core.telegram.org/bots/api#pinchatmessage" -msgstr "" - -#: aiogram.types.message.Message.pin:11 of -msgid "" -"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." -msgstr "" - -#: aiogram.types.message.Message.pin:12 of -msgid "" -"instance of method " -":class:`aiogram.methods.pin_chat_message.PinChatMessage`" -msgstr "" - -#: aiogram.types.message.Message.unpin:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.unpin_chat_message.UnpinChatMessage` will " -"automatically fill method attributes:" -msgstr "" - -#: aiogram.types.message.Message.unpin:7 of -msgid "" -"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." -msgstr "" - -#: aiogram.types.message.Message.unpin:9 of -msgid "Source: https://core.telegram.org/bots/api#unpinchatmessage" -msgstr "" - -#: aiogram.types.message.Message.unpin:11 of -msgid "" -"instance of method " -":class:`aiogram.methods.unpin_chat_message.UnpinChatMessage`" -msgstr "" - -#: aiogram.types.message.Message.get_url:1 of -msgid "" -"Returns message URL. Cannot be used in private (one-to-one) chats. If " -"chat has a username, returns URL like https://t.me/username/message_id " -"Otherwise (or if {force_private} flag is set), returns " -"https://t.me/c/shifted_chat_id/message_id" -msgstr "" - -#: aiogram.types.message.Message.get_url:5 of -msgid "if set, a private URL is returned even for a public chat" -msgstr "" - -#: aiogram.types.message.Message.get_url:6 of -msgid "string with full message URL" -msgstr "" - -#~ msgid "Reply with animation" -#~ msgstr "" - -#~ msgid "Answer with animation" -#~ msgstr "" - -#~ msgid "Reply with audio" -#~ msgstr "" - -#~ msgid "Answer with audio" -#~ msgstr "" - -#~ msgid "Reply with contact" -#~ msgstr "" - -#~ msgid "Answer with contact" -#~ msgstr "" - -#~ msgid "Reply with document" -#~ msgstr "" - -#~ msgid "Answer with document" -#~ msgstr "" - -#~ msgid "Reply with game" -#~ msgstr "" - -#~ msgid "Answer with game" -#~ msgstr "" - -#~ msgid "Reply with invoice" -#~ msgstr "" - -#~ msgid "" -#~ "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." -#~ msgstr "" - -#~ msgid "On success, the sent Message is returned." -#~ msgstr "" - -#~ msgid "Answer with invoice" -#~ msgstr "" - -#~ msgid "Reply with location" -#~ msgstr "" - -#~ msgid "Answer with location" -#~ msgstr "" - -#~ msgid "Reply with media group" -#~ msgstr "" - -#~ msgid "Answer with media group" -#~ msgstr "" - -#~ msgid "Reply with text message" -#~ msgstr "" - -#~ msgid "Answer with text message" -#~ msgstr "" - -#~ msgid "Reply with photo" -#~ msgstr "" - -#~ msgid "Answer with photo" -#~ msgstr "" - -#~ msgid "Reply with poll" -#~ msgstr "" - -#~ msgid "Answer with poll" -#~ msgstr "" - -#~ msgid ":param explanation:" -#~ msgstr "" - -#~ msgid "param explanation" -#~ msgstr "" - -#~ msgid "Reply with dice" -#~ msgstr "" - -#~ msgid "Answer with dice" -#~ msgstr "" - -#~ msgid "Reply with sticker" -#~ msgstr "" - -#~ msgid "Answer with sticker" -#~ msgstr "" - -#~ msgid "Reply with venue" -#~ msgstr "" - -#~ msgid "Answer with venue" -#~ msgstr "" - -#~ msgid "Reply with video" -#~ msgstr "" - -#~ msgid "Answer with video" -#~ msgstr "" - -#~ msgid "Reply wit video note" -#~ msgstr "" - -#~ msgid "Answer wit video note" -#~ msgstr "" - -#~ msgid "Reply with voice" -#~ msgstr "" - -#~ msgid "Answer with voice" -#~ msgstr "" - -#~ msgid "Copy message" -#~ msgstr "" - -#~ msgid "" -#~ "Sticker to send. Pass a file_id as" -#~ " String to send a file that " -#~ "exists on the Telegram servers " -#~ "(recommended), pass an HTTP URL as " -#~ "a String for Telegram to get a " -#~ ".WEBP file from the Internet, or " -#~ "upload a new one using multipart" -#~ "/form-data. :ref:`More information on " -#~ "Sending Files » `" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/message_auto_delete_timer_changed.po b/docs/locale/en/LC_MESSAGES/api/types/message_auto_delete_timer_changed.po deleted file mode 100644 index a4094144..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/message_auto_delete_timer_changed.po +++ /dev/null @@ -1,40 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/message_auto_delete_timer_changed.rst:3 -msgid "MessageAutoDeleteTimerChanged" -msgstr "" - -#: aiogram.types.message_auto_delete_timer_changed.MessageAutoDeleteTimerChanged:1 -#: of -msgid "" -"This object represents a service message about a change in auto-delete " -"timer settings." -msgstr "" - -#: aiogram.types.message_auto_delete_timer_changed.MessageAutoDeleteTimerChanged:3 -#: of -msgid "Source: https://core.telegram.org/bots/api#messageautodeletetimerchanged" -msgstr "" - -#: ../../docstring -#: aiogram.types.message_auto_delete_timer_changed.MessageAutoDeleteTimerChanged.message_auto_delete_time:1 -#: of -msgid "New auto-delete time for messages in the chat; in seconds" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/message_entity.po b/docs/locale/en/LC_MESSAGES/api/types/message_entity.po deleted file mode 100644 index 806b3cd0..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/message_entity.po +++ /dev/null @@ -1,87 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/message_entity.rst:3 -msgid "MessageEntity" -msgstr "" - -#: aiogram.types.message_entity.MessageEntity:1 of -msgid "" -"This object represents one special entity in a text message. For example," -" hashtags, usernames, URLs, etc." -msgstr "" - -#: aiogram.types.message_entity.MessageEntity:3 of -msgid "Source: https://core.telegram.org/bots/api#messageentity" -msgstr "" - -#: ../../docstring aiogram.types.message_entity.MessageEntity.type:1 of -msgid "" -"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), '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)" -msgstr "" - -#: ../../docstring aiogram.types.message_entity.MessageEntity.offset:1 of -msgid "" -"Offset in `UTF-16 code units `_ to the start of the entity" -msgstr "" - -#: ../../docstring aiogram.types.message_entity.MessageEntity.length:1 of -msgid "" -"Length of the entity in `UTF-16 code units " -"`_" -msgstr "" - -#: ../../docstring aiogram.types.message_entity.MessageEntity.url:1 of -msgid "" -"*Optional*. For 'text_link' only, URL that will be opened after user taps" -" on the text" -msgstr "" - -#: ../../docstring aiogram.types.message_entity.MessageEntity.user:1 of -msgid "*Optional*. For 'text_mention' only, the mentioned user" -msgstr "" - -#: ../../docstring aiogram.types.message_entity.MessageEntity.language:1 of -msgid "*Optional*. For 'pre' only, the programming language of the entity text" -msgstr "" - -#: ../../docstring aiogram.types.message_entity.MessageEntity.custom_emoji_id:1 -#: of -msgid "" -"*Optional*. For 'custom_emoji' only, unique identifier of the custom " -"emoji. Use " -":class:`aiogram.methods.get_custom_emoji_stickers.GetCustomEmojiStickers`" -" to get full information about the sticker" -msgstr "" - -#~ msgid "Offset in UTF-16 code units to the start of the entity" -#~ msgstr "" - -#~ msgid "Length of the entity in UTF-16 code units" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/message_id.po b/docs/locale/en/LC_MESSAGES/api/types/message_id.po deleted file mode 100644 index fd2da80c..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/message_id.po +++ /dev/null @@ -1,34 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/message_id.rst:3 -msgid "MessageId" -msgstr "" - -#: aiogram.types.message_id.MessageId:1 of -msgid "This object represents a unique message identifier." -msgstr "" - -#: aiogram.types.message_id.MessageId:3 of -msgid "Source: https://core.telegram.org/bots/api#messageid" -msgstr "" - -#: ../../docstring aiogram.types.message_id.MessageId.message_id:1 of -msgid "Unique message identifier" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/order_info.po b/docs/locale/en/LC_MESSAGES/api/types/order_info.po deleted file mode 100644 index bbf98947..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/order_info.po +++ /dev/null @@ -1,46 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/order_info.rst:3 -msgid "OrderInfo" -msgstr "" - -#: aiogram.types.order_info.OrderInfo:1 of -msgid "This object represents information about an order." -msgstr "" - -#: aiogram.types.order_info.OrderInfo:3 of -msgid "Source: https://core.telegram.org/bots/api#orderinfo" -msgstr "" - -#: ../../docstring aiogram.types.order_info.OrderInfo.name:1 of -msgid "*Optional*. User name" -msgstr "" - -#: ../../docstring aiogram.types.order_info.OrderInfo.phone_number:1 of -msgid "*Optional*. User's phone number" -msgstr "" - -#: ../../docstring aiogram.types.order_info.OrderInfo.email:1 of -msgid "*Optional*. User email" -msgstr "" - -#: ../../docstring aiogram.types.order_info.OrderInfo.shipping_address:1 of -msgid "*Optional*. User shipping address" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/passport_data.po b/docs/locale/en/LC_MESSAGES/api/types/passport_data.po deleted file mode 100644 index 528f756b..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/passport_data.po +++ /dev/null @@ -1,40 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/passport_data.rst:3 -msgid "PassportData" -msgstr "" - -#: aiogram.types.passport_data.PassportData:1 of -msgid "Describes Telegram Passport data shared with the bot by the user." -msgstr "" - -#: aiogram.types.passport_data.PassportData:3 of -msgid "Source: https://core.telegram.org/bots/api#passportdata" -msgstr "" - -#: ../../docstring aiogram.types.passport_data.PassportData.data:1 of -msgid "" -"Array with information about documents and other Telegram Passport " -"elements that was shared with the bot" -msgstr "" - -#: ../../docstring aiogram.types.passport_data.PassportData.credentials:1 of -msgid "Encrypted credentials required to decrypt the data" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/passport_element_error.po b/docs/locale/en/LC_MESSAGES/api/types/passport_element_error.po deleted file mode 100644 index 53acdac9..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/passport_element_error.po +++ /dev/null @@ -1,68 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/passport_element_error.rst:3 -msgid "PassportElementError" -msgstr "" - -#: aiogram.types.passport_element_error.PassportElementError:1 of -msgid "" -"This object represents an error in the Telegram Passport element which " -"was submitted that should be resolved by the user. It should be one of:" -msgstr "" - -#: aiogram.types.passport_element_error.PassportElementError:3 of -msgid ":class:`aiogram.types.passport_element_error_data_field.PassportElementErrorDataField`" -msgstr "" - -#: aiogram.types.passport_element_error.PassportElementError:4 of -msgid ":class:`aiogram.types.passport_element_error_front_side.PassportElementErrorFrontSide`" -msgstr "" - -#: aiogram.types.passport_element_error.PassportElementError:5 of -msgid ":class:`aiogram.types.passport_element_error_reverse_side.PassportElementErrorReverseSide`" -msgstr "" - -#: aiogram.types.passport_element_error.PassportElementError:6 of -msgid ":class:`aiogram.types.passport_element_error_selfie.PassportElementErrorSelfie`" -msgstr "" - -#: aiogram.types.passport_element_error.PassportElementError:7 of -msgid ":class:`aiogram.types.passport_element_error_file.PassportElementErrorFile`" -msgstr "" - -#: aiogram.types.passport_element_error.PassportElementError:8 of -msgid ":class:`aiogram.types.passport_element_error_files.PassportElementErrorFiles`" -msgstr "" - -#: aiogram.types.passport_element_error.PassportElementError:9 of -msgid ":class:`aiogram.types.passport_element_error_translation_file.PassportElementErrorTranslationFile`" -msgstr "" - -#: aiogram.types.passport_element_error.PassportElementError:10 of -msgid ":class:`aiogram.types.passport_element_error_translation_files.PassportElementErrorTranslationFiles`" -msgstr "" - -#: aiogram.types.passport_element_error.PassportElementError:11 of -msgid ":class:`aiogram.types.passport_element_error_unspecified.PassportElementErrorUnspecified`" -msgstr "" - -#: aiogram.types.passport_element_error.PassportElementError:13 of -msgid "Source: https://core.telegram.org/bots/api#passportelementerror" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_data_field.po b/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_data_field.po deleted file mode 100644 index e3f9454c..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_data_field.po +++ /dev/null @@ -1,67 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/passport_element_error_data_field.rst:3 -msgid "PassportElementErrorDataField" -msgstr "" - -#: aiogram.types.passport_element_error_data_field.PassportElementErrorDataField:1 -#: of -msgid "" -"Represents an issue in one of the data fields that was provided by the " -"user. The error is considered resolved when the field's value changes." -msgstr "" - -#: aiogram.types.passport_element_error_data_field.PassportElementErrorDataField:3 -#: of -msgid "Source: https://core.telegram.org/bots/api#passportelementerrordatafield" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_data_field.PassportElementErrorDataField.source:1 -#: of -msgid "Error source, must be *data*" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_data_field.PassportElementErrorDataField.type:1 -#: of -msgid "" -"The section of the user's Telegram Passport which has the error, one of " -"'personal_details', 'passport', 'driver_license', 'identity_card', " -"'internal_passport', 'address'" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_data_field.PassportElementErrorDataField.field_name:1 -#: of -msgid "Name of the data field which has the error" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_data_field.PassportElementErrorDataField.data_hash:1 -#: of -msgid "Base64-encoded data hash" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_data_field.PassportElementErrorDataField.message:1 -#: of -msgid "Error message" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_file.po b/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_file.po deleted file mode 100644 index 96079e3e..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_file.po +++ /dev/null @@ -1,58 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/passport_element_error_file.rst:3 -msgid "PassportElementErrorFile" -msgstr "" - -#: aiogram.types.passport_element_error_file.PassportElementErrorFile:1 of -msgid "" -"Represents an issue with a document scan. The error is considered " -"resolved when the file with the document scan changes." -msgstr "" - -#: aiogram.types.passport_element_error_file.PassportElementErrorFile:3 of -msgid "Source: https://core.telegram.org/bots/api#passportelementerrorfile" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_file.PassportElementErrorFile.source:1 -#: of -msgid "Error source, must be *file*" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_file.PassportElementErrorFile.type:1 of -msgid "" -"The section of the user's Telegram Passport which has the issue, one of " -"'utility_bill', 'bank_statement', 'rental_agreement', " -"'passport_registration', 'temporary_registration'" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_file.PassportElementErrorFile.file_hash:1 -#: of -msgid "Base64-encoded file hash" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_file.PassportElementErrorFile.message:1 -#: of -msgid "Error message" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_files.po b/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_files.po deleted file mode 100644 index 259754a3..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_files.po +++ /dev/null @@ -1,59 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/passport_element_error_files.rst:3 -msgid "PassportElementErrorFiles" -msgstr "" - -#: aiogram.types.passport_element_error_files.PassportElementErrorFiles:1 of -msgid "" -"Represents an issue with a list of scans. The error is considered " -"resolved when the list of files containing the scans changes." -msgstr "" - -#: aiogram.types.passport_element_error_files.PassportElementErrorFiles:3 of -msgid "Source: https://core.telegram.org/bots/api#passportelementerrorfiles" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_files.PassportElementErrorFiles.source:1 -#: of -msgid "Error source, must be *files*" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_files.PassportElementErrorFiles.type:1 -#: of -msgid "" -"The section of the user's Telegram Passport which has the issue, one of " -"'utility_bill', 'bank_statement', 'rental_agreement', " -"'passport_registration', 'temporary_registration'" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_files.PassportElementErrorFiles.file_hashes:1 -#: of -msgid "List of base64-encoded file hashes" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_files.PassportElementErrorFiles.message:1 -#: of -msgid "Error message" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_front_side.po b/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_front_side.po deleted file mode 100644 index c8223d9e..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_front_side.po +++ /dev/null @@ -1,61 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/passport_element_error_front_side.rst:3 -msgid "PassportElementErrorFrontSide" -msgstr "" - -#: aiogram.types.passport_element_error_front_side.PassportElementErrorFrontSide:1 -#: of -msgid "" -"Represents an issue with the front side of a document. The error is " -"considered resolved when the file with the front side of the document " -"changes." -msgstr "" - -#: aiogram.types.passport_element_error_front_side.PassportElementErrorFrontSide:3 -#: of -msgid "Source: https://core.telegram.org/bots/api#passportelementerrorfrontside" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_front_side.PassportElementErrorFrontSide.source:1 -#: of -msgid "Error source, must be *front_side*" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_front_side.PassportElementErrorFrontSide.type:1 -#: of -msgid "" -"The section of the user's Telegram Passport which has the issue, one of " -"'passport', 'driver_license', 'identity_card', 'internal_passport'" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_front_side.PassportElementErrorFrontSide.file_hash:1 -#: of -msgid "Base64-encoded hash of the file with the front side of the document" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_front_side.PassportElementErrorFrontSide.message:1 -#: of -msgid "Error message" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_reverse_side.po b/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_reverse_side.po deleted file mode 100644 index 301e3b56..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_reverse_side.po +++ /dev/null @@ -1,61 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/passport_element_error_reverse_side.rst:3 -msgid "PassportElementErrorReverseSide" -msgstr "" - -#: aiogram.types.passport_element_error_reverse_side.PassportElementErrorReverseSide:1 -#: of -msgid "" -"Represents an issue with the reverse side of a document. The error is " -"considered resolved when the file with reverse side of the document " -"changes." -msgstr "" - -#: aiogram.types.passport_element_error_reverse_side.PassportElementErrorReverseSide:3 -#: of -msgid "Source: https://core.telegram.org/bots/api#passportelementerrorreverseside" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_reverse_side.PassportElementErrorReverseSide.source:1 -#: of -msgid "Error source, must be *reverse_side*" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_reverse_side.PassportElementErrorReverseSide.type:1 -#: of -msgid "" -"The section of the user's Telegram Passport which has the issue, one of " -"'driver_license', 'identity_card'" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_reverse_side.PassportElementErrorReverseSide.file_hash:1 -#: of -msgid "Base64-encoded hash of the file with the reverse side of the document" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_reverse_side.PassportElementErrorReverseSide.message:1 -#: of -msgid "Error message" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_selfie.po b/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_selfie.po deleted file mode 100644 index 9e37ef2a..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_selfie.po +++ /dev/null @@ -1,58 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/passport_element_error_selfie.rst:3 -msgid "PassportElementErrorSelfie" -msgstr "" - -#: aiogram.types.passport_element_error_selfie.PassportElementErrorSelfie:1 of -msgid "" -"Represents an issue with the selfie with a document. The error is " -"considered resolved when the file with the selfie changes." -msgstr "" - -#: aiogram.types.passport_element_error_selfie.PassportElementErrorSelfie:3 of -msgid "Source: https://core.telegram.org/bots/api#passportelementerrorselfie" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_selfie.PassportElementErrorSelfie.source:1 -#: of -msgid "Error source, must be *selfie*" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_selfie.PassportElementErrorSelfie.type:1 -#: of -msgid "" -"The section of the user's Telegram Passport which has the issue, one of " -"'passport', 'driver_license', 'identity_card', 'internal_passport'" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_selfie.PassportElementErrorSelfie.file_hash:1 -#: of -msgid "Base64-encoded hash of the file with the selfie" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_selfie.PassportElementErrorSelfie.message:1 -#: of -msgid "Error message" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_translation_file.po b/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_translation_file.po deleted file mode 100644 index 9bf84e16..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_translation_file.po +++ /dev/null @@ -1,64 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/passport_element_error_translation_file.rst:3 -msgid "PassportElementErrorTranslationFile" -msgstr "" - -#: aiogram.types.passport_element_error_translation_file.PassportElementErrorTranslationFile:1 -#: of -msgid "" -"Represents an issue with one of the files that constitute the translation" -" of a document. The error is considered resolved when the file changes." -msgstr "" - -#: aiogram.types.passport_element_error_translation_file.PassportElementErrorTranslationFile:3 -#: of -msgid "" -"Source: " -"https://core.telegram.org/bots/api#passportelementerrortranslationfile" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_translation_file.PassportElementErrorTranslationFile.source:1 -#: of -msgid "Error source, must be *translation_file*" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_translation_file.PassportElementErrorTranslationFile.type:1 -#: of -msgid "" -"Type of element of the user's Telegram Passport which has the issue, one " -"of 'passport', 'driver_license', 'identity_card', 'internal_passport', " -"'utility_bill', 'bank_statement', 'rental_agreement', " -"'passport_registration', 'temporary_registration'" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_translation_file.PassportElementErrorTranslationFile.file_hash:1 -#: of -msgid "Base64-encoded file hash" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_translation_file.PassportElementErrorTranslationFile.message:1 -#: of -msgid "Error message" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_translation_files.po b/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_translation_files.po deleted file mode 100644 index a7eb749c..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_translation_files.po +++ /dev/null @@ -1,64 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/passport_element_error_translation_files.rst:3 -msgid "PassportElementErrorTranslationFiles" -msgstr "" - -#: aiogram.types.passport_element_error_translation_files.PassportElementErrorTranslationFiles:1 -#: of -msgid "" -"Represents an issue with the translated version of a document. The error " -"is considered resolved when a file with the document translation change." -msgstr "" - -#: aiogram.types.passport_element_error_translation_files.PassportElementErrorTranslationFiles:3 -#: of -msgid "" -"Source: " -"https://core.telegram.org/bots/api#passportelementerrortranslationfiles" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_translation_files.PassportElementErrorTranslationFiles.source:1 -#: of -msgid "Error source, must be *translation_files*" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_translation_files.PassportElementErrorTranslationFiles.type:1 -#: of -msgid "" -"Type of element of the user's Telegram Passport which has the issue, one " -"of 'passport', 'driver_license', 'identity_card', 'internal_passport', " -"'utility_bill', 'bank_statement', 'rental_agreement', " -"'passport_registration', 'temporary_registration'" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_translation_files.PassportElementErrorTranslationFiles.file_hashes:1 -#: of -msgid "List of base64-encoded file hashes" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_translation_files.PassportElementErrorTranslationFiles.message:1 -#: of -msgid "Error message" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_unspecified.po b/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_unspecified.po deleted file mode 100644 index 899c416c..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/passport_element_error_unspecified.po +++ /dev/null @@ -1,58 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/passport_element_error_unspecified.rst:3 -msgid "PassportElementErrorUnspecified" -msgstr "" - -#: aiogram.types.passport_element_error_unspecified.PassportElementErrorUnspecified:1 -#: of -msgid "" -"Represents an issue in an unspecified place. The error is considered " -"resolved when new data is added." -msgstr "" - -#: aiogram.types.passport_element_error_unspecified.PassportElementErrorUnspecified:3 -#: of -msgid "Source: https://core.telegram.org/bots/api#passportelementerrorunspecified" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_unspecified.PassportElementErrorUnspecified.source:1 -#: of -msgid "Error source, must be *unspecified*" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_unspecified.PassportElementErrorUnspecified.type:1 -#: of -msgid "Type of element of the user's Telegram Passport which has the issue" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_unspecified.PassportElementErrorUnspecified.element_hash:1 -#: of -msgid "Base64-encoded element hash" -msgstr "" - -#: ../../docstring -#: aiogram.types.passport_element_error_unspecified.PassportElementErrorUnspecified.message:1 -#: of -msgid "Error message" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/passport_file.po b/docs/locale/en/LC_MESSAGES/api/types/passport_file.po deleted file mode 100644 index 06142ecf..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/passport_file.po +++ /dev/null @@ -1,51 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/passport_file.rst:3 -msgid "PassportFile" -msgstr "" - -#: aiogram.types.passport_file.PassportFile:1 of -msgid "" -"This object represents a file uploaded to Telegram Passport. Currently " -"all Telegram Passport files are in JPEG format when decrypted and don't " -"exceed 10MB." -msgstr "" - -#: aiogram.types.passport_file.PassportFile:3 of -msgid "Source: https://core.telegram.org/bots/api#passportfile" -msgstr "" - -#: ../../docstring aiogram.types.passport_file.PassportFile.file_id:1 of -msgid "Identifier for this file, which can be used to download or reuse the file" -msgstr "" - -#: ../../docstring aiogram.types.passport_file.PassportFile.file_unique_id:1 of -msgid "" -"Unique identifier for this file, which is supposed to be the same over " -"time and for different bots. Can't be used to download or reuse the file." -msgstr "" - -#: ../../docstring aiogram.types.passport_file.PassportFile.file_size:1 of -msgid "File size in bytes" -msgstr "" - -#: ../../docstring aiogram.types.passport_file.PassportFile.file_date:1 of -msgid "Unix time when the file was uploaded" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/photo_size.po b/docs/locale/en/LC_MESSAGES/api/types/photo_size.po deleted file mode 100644 index d24a773c..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/photo_size.po +++ /dev/null @@ -1,55 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/photo_size.rst:3 -msgid "PhotoSize" -msgstr "" - -#: aiogram.types.photo_size.PhotoSize:1 of -msgid "" -"This object represents one size of a photo or a `file " -"`_ / " -":class:`aiogram.methods.sticker.Sticker` thumbnail." -msgstr "" - -#: aiogram.types.photo_size.PhotoSize:3 of -msgid "Source: https://core.telegram.org/bots/api#photosize" -msgstr "" - -#: ../../docstring aiogram.types.photo_size.PhotoSize.file_id:1 of -msgid "Identifier for this file, which can be used to download or reuse the file" -msgstr "" - -#: ../../docstring aiogram.types.photo_size.PhotoSize.file_unique_id:1 of -msgid "" -"Unique identifier for this file, which is supposed to be the same over " -"time and for different bots. Can't be used to download or reuse the file." -msgstr "" - -#: ../../docstring aiogram.types.photo_size.PhotoSize.width:1 of -msgid "Photo width" -msgstr "" - -#: ../../docstring aiogram.types.photo_size.PhotoSize.height:1 of -msgid "Photo height" -msgstr "" - -#: ../../docstring aiogram.types.photo_size.PhotoSize.file_size:1 of -msgid "*Optional*. File size in bytes" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/poll.po b/docs/locale/en/LC_MESSAGES/api/types/poll.po deleted file mode 100644 index 34ce17a6..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/poll.po +++ /dev/null @@ -1,93 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/poll.rst:3 -msgid "Poll" -msgstr "" - -#: aiogram.types.poll.Poll:1 of -msgid "This object contains information about a poll." -msgstr "" - -#: aiogram.types.poll.Poll:3 of -msgid "Source: https://core.telegram.org/bots/api#poll" -msgstr "" - -#: ../../docstring aiogram.types.poll.Poll.id:1 of -msgid "Unique poll identifier" -msgstr "" - -#: ../../docstring aiogram.types.poll.Poll.question:1 of -msgid "Poll question, 1-300 characters" -msgstr "" - -#: ../../docstring aiogram.types.poll.Poll.options:1 of -msgid "List of poll options" -msgstr "" - -#: ../../docstring aiogram.types.poll.Poll.total_voter_count:1 of -msgid "Total number of users that voted in the poll" -msgstr "" - -#: ../../docstring aiogram.types.poll.Poll.is_closed:1 of -msgid ":code:`True`, if the poll is closed" -msgstr "" - -#: ../../docstring aiogram.types.poll.Poll.is_anonymous:1 of -msgid ":code:`True`, if the poll is anonymous" -msgstr "" - -#: ../../docstring aiogram.types.poll.Poll.type:1 of -msgid "Poll type, currently can be 'regular' or 'quiz'" -msgstr "" - -#: ../../docstring aiogram.types.poll.Poll.allows_multiple_answers:1 of -msgid ":code:`True`, if the poll allows multiple answers" -msgstr "" - -#: ../../docstring aiogram.types.poll.Poll.correct_option_id:1 of -msgid "" -"*Optional*. 0-based identifier of the correct answer option. Available " -"only for polls in the quiz mode, which are closed, or was sent (not " -"forwarded) by the bot or to the private chat with the bot." -msgstr "" - -#: ../../docstring aiogram.types.poll.Poll.explanation:1 of -msgid "" -"*Optional*. Text that is shown when a user chooses an incorrect answer or" -" taps on the lamp icon in a quiz-style poll, 0-200 characters" -msgstr "" - -#: ../../docstring aiogram.types.poll.Poll.explanation_entities:1 of -msgid "" -"*Optional*. Special entities like usernames, URLs, bot commands, etc. " -"that appear in the *explanation*" -msgstr "" - -#: ../../docstring aiogram.types.poll.Poll.open_period:1 of -msgid "" -"*Optional*. Amount of time in seconds the poll will be active after " -"creation" -msgstr "" - -#: ../../docstring aiogram.types.poll.Poll.close_date:1 of -msgid "" -"*Optional*. Point in time (Unix timestamp) when the poll will be " -"automatically closed" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/poll_answer.po b/docs/locale/en/LC_MESSAGES/api/types/poll_answer.po deleted file mode 100644 index 627b292c..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/poll_answer.po +++ /dev/null @@ -1,44 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/poll_answer.rst:3 -msgid "PollAnswer" -msgstr "" - -#: aiogram.types.poll_answer.PollAnswer:1 of -msgid "This object represents an answer of a user in a non-anonymous poll." -msgstr "" - -#: aiogram.types.poll_answer.PollAnswer:3 of -msgid "Source: https://core.telegram.org/bots/api#pollanswer" -msgstr "" - -#: ../../docstring aiogram.types.poll_answer.PollAnswer.poll_id:1 of -msgid "Unique poll identifier" -msgstr "" - -#: ../../docstring aiogram.types.poll_answer.PollAnswer.user:1 of -msgid "The user, who changed the answer to the poll" -msgstr "" - -#: ../../docstring aiogram.types.poll_answer.PollAnswer.option_ids:1 of -msgid "" -"0-based identifiers of answer options, chosen by the user. May be empty " -"if the user retracted their vote." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/poll_option.po b/docs/locale/en/LC_MESSAGES/api/types/poll_option.po deleted file mode 100644 index 27ecd197..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/poll_option.po +++ /dev/null @@ -1,38 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/poll_option.rst:3 -msgid "PollOption" -msgstr "" - -#: aiogram.types.poll_option.PollOption:1 of -msgid "This object contains information about one answer option in a poll." -msgstr "" - -#: aiogram.types.poll_option.PollOption:3 of -msgid "Source: https://core.telegram.org/bots/api#polloption" -msgstr "" - -#: ../../docstring aiogram.types.poll_option.PollOption.text:1 of -msgid "Option text, 1-100 characters" -msgstr "" - -#: ../../docstring aiogram.types.poll_option.PollOption.voter_count:1 of -msgid "Number of users that voted for this option" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/pre_checkout_query.po b/docs/locale/en/LC_MESSAGES/api/types/pre_checkout_query.po deleted file mode 100644 index 053b5081..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/pre_checkout_query.po +++ /dev/null @@ -1,80 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/pre_checkout_query.rst:3 -msgid "PreCheckoutQuery" -msgstr "" - -#: aiogram.types.pre_checkout_query.PreCheckoutQuery:1 of -msgid "This object contains information about an incoming pre-checkout query." -msgstr "" - -#: aiogram.types.pre_checkout_query.PreCheckoutQuery:3 of -msgid "Source: https://core.telegram.org/bots/api#precheckoutquery" -msgstr "" - -#: ../../docstring aiogram.types.pre_checkout_query.PreCheckoutQuery.id:1 of -msgid "Unique query identifier" -msgstr "" - -#: ../../docstring -#: aiogram.types.pre_checkout_query.PreCheckoutQuery.from_user:1 of -msgid "User who sent the query" -msgstr "" - -#: ../../docstring aiogram.types.pre_checkout_query.PreCheckoutQuery.currency:1 -#: of -msgid "" -"Three-letter ISO 4217 `currency `_ code" -msgstr "" - -#: ../../docstring -#: aiogram.types.pre_checkout_query.PreCheckoutQuery.total_amount:1 of -msgid "" -"Total price in the *smallest units* of the currency (integer, **not** " -"float/double). For example, for a price of :code:`US$ 1.45` pass " -":code:`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)." -msgstr "" - -#: ../../docstring -#: aiogram.types.pre_checkout_query.PreCheckoutQuery.invoice_payload:1 of -msgid "Bot specified invoice payload" -msgstr "" - -#: ../../docstring -#: aiogram.types.pre_checkout_query.PreCheckoutQuery.shipping_option_id:1 of -msgid "*Optional*. Identifier of the shipping option chosen by the user" -msgstr "" - -#: ../../docstring -#: aiogram.types.pre_checkout_query.PreCheckoutQuery.order_info:1 of -msgid "*Optional*. Order information provided by the user" -msgstr "" - -#: aiogram.types.pre_checkout_query.PreCheckoutQuery.answer of -msgid "Parameters" -msgstr "" - -#: aiogram.types.pre_checkout_query.PreCheckoutQuery.answer of -msgid "Returns" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/proximity_alert_triggered.po b/docs/locale/en/LC_MESSAGES/api/types/proximity_alert_triggered.po deleted file mode 100644 index bbfc27d1..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/proximity_alert_triggered.po +++ /dev/null @@ -1,49 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/proximity_alert_triggered.rst:3 -msgid "ProximityAlertTriggered" -msgstr "" - -#: aiogram.types.proximity_alert_triggered.ProximityAlertTriggered:1 of -msgid "" -"This object represents the content of a service message, sent whenever a " -"user in the chat triggers a proximity alert set by another user." -msgstr "" - -#: aiogram.types.proximity_alert_triggered.ProximityAlertTriggered:3 of -msgid "Source: https://core.telegram.org/bots/api#proximityalerttriggered" -msgstr "" - -#: ../../docstring -#: aiogram.types.proximity_alert_triggered.ProximityAlertTriggered.traveler:1 -#: of -msgid "User that triggered the alert" -msgstr "" - -#: ../../docstring -#: aiogram.types.proximity_alert_triggered.ProximityAlertTriggered.watcher:1 of -msgid "User that set the alert" -msgstr "" - -#: ../../docstring -#: aiogram.types.proximity_alert_triggered.ProximityAlertTriggered.distance:1 -#: of -msgid "The distance between the users" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/reply_keyboard_markup.po b/docs/locale/en/LC_MESSAGES/api/types/reply_keyboard_markup.po deleted file mode 100644 index 4f2b1f86..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/reply_keyboard_markup.po +++ /dev/null @@ -1,96 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/reply_keyboard_markup.rst:3 -msgid "ReplyKeyboardMarkup" -msgstr "" - -#: aiogram.types.reply_keyboard_markup.ReplyKeyboardMarkup:1 of -msgid "" -"This object represents a `custom keyboard " -"`_ with reply options " -"(see `Introduction to bots " -"`_ for details and " -"examples)." -msgstr "" - -#: aiogram.types.reply_keyboard_markup.ReplyKeyboardMarkup:3 of -msgid "Source: https://core.telegram.org/bots/api#replykeyboardmarkup" -msgstr "" - -#: ../../docstring -#: aiogram.types.reply_keyboard_markup.ReplyKeyboardMarkup.keyboard:1 of -msgid "" -"Array of button rows, each represented by an Array of " -":class:`aiogram.types.keyboard_button.KeyboardButton` objects" -msgstr "" - -#: ../../docstring -#: aiogram.types.reply_keyboard_markup.ReplyKeyboardMarkup.is_persistent:1 of -msgid "" -"*Optional*. Requests clients to always show the keyboard when the regular" -" keyboard is hidden. Defaults to *false*, in which case the custom " -"keyboard can be hidden and opened with a keyboard icon." -msgstr "" - -#: ../../docstring -#: aiogram.types.reply_keyboard_markup.ReplyKeyboardMarkup.resize_keyboard:1 of -msgid "" -"*Optional*. Requests clients to resize the keyboard vertically for " -"optimal fit (e.g., make the keyboard smaller if there are just two rows " -"of buttons). Defaults to *false*, in which case the custom keyboard is " -"always of the same height as the app's standard keyboard." -msgstr "" - -#: ../../docstring -#: aiogram.types.reply_keyboard_markup.ReplyKeyboardMarkup.one_time_keyboard:1 -#: of -msgid "" -"*Optional*. Requests clients to hide the keyboard as soon as it's been " -"used. The keyboard will still be available, but clients will " -"automatically display the usual letter-keyboard in the chat - the user " -"can press a special button in the input field to see the custom keyboard " -"again. Defaults to *false*." -msgstr "" - -#: ../../docstring -#: aiogram.types.reply_keyboard_markup.ReplyKeyboardMarkup.input_field_placeholder:1 -#: of -msgid "" -"*Optional*. The placeholder to be shown in the input field when the " -"keyboard is active; 1-64 characters" -msgstr "" - -#: ../../docstring -#: aiogram.types.reply_keyboard_markup.ReplyKeyboardMarkup.selective:1 of -msgid "" -"*Optional*. Use this parameter if you want to show the keyboard to " -"specific users only. Targets: 1) users that are @mentioned in the *text* " -"of the :class:`aiogram.types.message.Message` object; 2) if the bot's " -"message is a reply (has *reply_to_message_id*), sender of the original " -"message." -msgstr "" - -#~ msgid "" -#~ "This object represents a `custom " -#~ "keyboard `_ with" -#~ " reply options (see `Introduction to " -#~ "bots `_ for " -#~ "details and examples)." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/reply_keyboard_remove.po b/docs/locale/en/LC_MESSAGES/api/types/reply_keyboard_remove.po deleted file mode 100644 index 26e7d05c..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/reply_keyboard_remove.po +++ /dev/null @@ -1,55 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/reply_keyboard_remove.rst:3 -msgid "ReplyKeyboardRemove" -msgstr "" - -#: aiogram.types.reply_keyboard_remove.ReplyKeyboardRemove:1 of -msgid "" -"Upon receiving a message with this object, Telegram clients will remove " -"the current custom keyboard and display the default letter-keyboard. By " -"default, custom keyboards are displayed until a new keyboard is sent by a" -" bot. An exception is made for one-time keyboards that are hidden " -"immediately after the user presses a button (see " -":class:`aiogram.types.reply_keyboard_markup.ReplyKeyboardMarkup`)." -msgstr "" - -#: aiogram.types.reply_keyboard_remove.ReplyKeyboardRemove:3 of -msgid "Source: https://core.telegram.org/bots/api#replykeyboardremove" -msgstr "" - -#: ../../docstring -#: aiogram.types.reply_keyboard_remove.ReplyKeyboardRemove.remove_keyboard:1 of -msgid "" -"Requests clients to remove the custom keyboard (user will not be able to " -"summon this keyboard; if you want to hide the keyboard from sight but " -"keep it accessible, use *one_time_keyboard* in " -":class:`aiogram.types.reply_keyboard_markup.ReplyKeyboardMarkup`)" -msgstr "" - -#: ../../docstring -#: aiogram.types.reply_keyboard_remove.ReplyKeyboardRemove.selective:1 of -msgid "" -"*Optional*. Use this parameter if you want to remove the keyboard for " -"specific users only. Targets: 1) users that are @mentioned in the *text* " -"of the :class:`aiogram.types.message.Message` object; 2) if the bot's " -"message is a reply (has *reply_to_message_id*), sender of the original " -"message." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/response_parameters.po b/docs/locale/en/LC_MESSAGES/api/types/response_parameters.po deleted file mode 100644 index 44650c07..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/response_parameters.po +++ /dev/null @@ -1,48 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/response_parameters.rst:3 -msgid "ResponseParameters" -msgstr "" - -#: aiogram.types.response_parameters.ResponseParameters:1 of -msgid "Describes why a request was unsuccessful." -msgstr "" - -#: aiogram.types.response_parameters.ResponseParameters:3 of -msgid "Source: https://core.telegram.org/bots/api#responseparameters" -msgstr "" - -#: ../../docstring -#: aiogram.types.response_parameters.ResponseParameters.migrate_to_chat_id:1 of -msgid "" -"*Optional*. The group has been migrated to a supergroup with the " -"specified identifier. This number may have more than 32 significant bits " -"and some programming languages may have difficulty/silent defects in " -"interpreting it. But it has at most 52 significant bits, so a signed " -"64-bit integer or double-precision float type are safe for storing this " -"identifier." -msgstr "" - -#: ../../docstring -#: aiogram.types.response_parameters.ResponseParameters.retry_after:1 of -msgid "" -"*Optional*. In case of exceeding flood control, the number of seconds " -"left to wait before the request can be repeated" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/sent_web_app_message.po b/docs/locale/en/LC_MESSAGES/api/types/sent_web_app_message.po deleted file mode 100644 index 1464542c..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/sent_web_app_message.po +++ /dev/null @@ -1,41 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/sent_web_app_message.rst:3 -msgid "SentWebAppMessage" -msgstr "" - -#: aiogram.types.sent_web_app_message.SentWebAppMessage:1 of -msgid "" -"Describes an inline message sent by a `Web App " -"`_ on behalf of a user." -msgstr "" - -#: aiogram.types.sent_web_app_message.SentWebAppMessage:3 of -msgid "Source: https://core.telegram.org/bots/api#sentwebappmessage" -msgstr "" - -#: ../../docstring -#: aiogram.types.sent_web_app_message.SentWebAppMessage.inline_message_id:1 of -msgid "" -"*Optional*. Identifier of the sent inline message. Available only if " -"there is an `inline keyboard " -"`_ attached to " -"the message." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/shipping_address.po b/docs/locale/en/LC_MESSAGES/api/types/shipping_address.po deleted file mode 100644 index a5b1df15..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/shipping_address.po +++ /dev/null @@ -1,58 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/shipping_address.rst:3 -msgid "ShippingAddress" -msgstr "" - -#: aiogram.types.shipping_address.ShippingAddress:1 of -msgid "This object represents a shipping address." -msgstr "" - -#: aiogram.types.shipping_address.ShippingAddress:3 of -msgid "Source: https://core.telegram.org/bots/api#shippingaddress" -msgstr "" - -#: ../../docstring -#: aiogram.types.shipping_address.ShippingAddress.country_code:1 of -msgid "Two-letter ISO 3166-1 alpha-2 country code" -msgstr "" - -#: ../../docstring aiogram.types.shipping_address.ShippingAddress.state:1 of -msgid "State, if applicable" -msgstr "" - -#: ../../docstring aiogram.types.shipping_address.ShippingAddress.city:1 of -msgid "City" -msgstr "" - -#: ../../docstring -#: aiogram.types.shipping_address.ShippingAddress.street_line1:1 of -msgid "First line for the address" -msgstr "" - -#: ../../docstring -#: aiogram.types.shipping_address.ShippingAddress.street_line2:1 of -msgid "Second line for the address" -msgstr "" - -#: ../../docstring aiogram.types.shipping_address.ShippingAddress.post_code:1 -#: of -msgid "Address post code" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/shipping_option.po b/docs/locale/en/LC_MESSAGES/api/types/shipping_option.po deleted file mode 100644 index e9f95db7..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/shipping_option.po +++ /dev/null @@ -1,42 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/shipping_option.rst:3 -msgid "ShippingOption" -msgstr "" - -#: aiogram.types.shipping_option.ShippingOption:1 of -msgid "This object represents one shipping option." -msgstr "" - -#: aiogram.types.shipping_option.ShippingOption:3 of -msgid "Source: https://core.telegram.org/bots/api#shippingoption" -msgstr "" - -#: ../../docstring aiogram.types.shipping_option.ShippingOption.id:1 of -msgid "Shipping option identifier" -msgstr "" - -#: ../../docstring aiogram.types.shipping_option.ShippingOption.title:1 of -msgid "Option title" -msgstr "" - -#: ../../docstring aiogram.types.shipping_option.ShippingOption.prices:1 of -msgid "List of price portions" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/shipping_query.po b/docs/locale/en/LC_MESSAGES/api/types/shipping_query.po deleted file mode 100644 index 71f13a21..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/shipping_query.po +++ /dev/null @@ -1,56 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/shipping_query.rst:3 -msgid "ShippingQuery" -msgstr "" - -#: aiogram.types.shipping_query.ShippingQuery:1 of -msgid "This object contains information about an incoming shipping query." -msgstr "" - -#: aiogram.types.shipping_query.ShippingQuery:3 of -msgid "Source: https://core.telegram.org/bots/api#shippingquery" -msgstr "" - -#: ../../docstring aiogram.types.shipping_query.ShippingQuery.id:1 of -msgid "Unique query identifier" -msgstr "" - -#: ../../docstring aiogram.types.shipping_query.ShippingQuery.from_user:1 of -msgid "User who sent the query" -msgstr "" - -#: ../../docstring aiogram.types.shipping_query.ShippingQuery.invoice_payload:1 -#: of -msgid "Bot specified invoice payload" -msgstr "" - -#: ../../docstring -#: aiogram.types.shipping_query.ShippingQuery.shipping_address:1 of -msgid "User specified shipping address" -msgstr "" - -#: aiogram.types.shipping_query.ShippingQuery.answer of -msgid "Parameters" -msgstr "" - -#: aiogram.types.shipping_query.ShippingQuery.answer of -msgid "Returns" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/sticker.po b/docs/locale/en/LC_MESSAGES/api/types/sticker.po deleted file mode 100644 index fe98cecc..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/sticker.po +++ /dev/null @@ -1,173 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/types/sticker.rst:3 -msgid "Sticker" -msgstr "" - -#: aiogram.types.sticker.Sticker:1 of -msgid "This object represents a sticker." -msgstr "" - -#: aiogram.types.sticker.Sticker:3 of -msgid "Source: https://core.telegram.org/bots/api#sticker" -msgstr "" - -#: ../../docstring aiogram.types.sticker.Sticker.file_id:1 of -msgid "Identifier for this file, which can be used to download or reuse the file" -msgstr "" - -#: ../../docstring aiogram.types.sticker.Sticker.file_unique_id:1 of -msgid "" -"Unique identifier for this file, which is supposed to be the same over " -"time and for different bots. Can't be used to download or reuse the file." -msgstr "" - -#: ../../docstring aiogram.types.sticker.Sticker.type:1 of -msgid "" -"Type of the sticker, currently one of 'regular', 'mask', 'custom_emoji'. " -"The type of the sticker is independent from its format, which is " -"determined by the fields *is_animated* and *is_video*." -msgstr "" - -#: ../../docstring aiogram.types.sticker.Sticker.width:1 of -msgid "Sticker width" -msgstr "" - -#: ../../docstring aiogram.types.sticker.Sticker.height:1 of -msgid "Sticker height" -msgstr "" - -#: ../../docstring aiogram.types.sticker.Sticker.is_animated:1 of -msgid "" -":code:`True`, if the sticker is `animated `_" -msgstr "" - -#: ../../docstring aiogram.types.sticker.Sticker.is_video:1 of -msgid "" -":code:`True`, if the sticker is a `video sticker " -"`_" -msgstr "" - -#: ../../docstring aiogram.types.sticker.Sticker.thumbnail:1 of -msgid "*Optional*. Sticker thumbnail in the .WEBP or .JPG format" -msgstr "" - -#: ../../docstring aiogram.types.sticker.Sticker.emoji:1 of -msgid "*Optional*. Emoji associated with the sticker" -msgstr "" - -#: ../../docstring aiogram.types.sticker.Sticker.set_name:1 of -msgid "*Optional*. Name of the sticker set to which the sticker belongs" -msgstr "" - -#: ../../docstring aiogram.types.sticker.Sticker.premium_animation:1 of -msgid "" -"*Optional*. For premium regular stickers, premium animation for the " -"sticker" -msgstr "" - -#: ../../docstring aiogram.types.sticker.Sticker.mask_position:1 of -msgid "" -"*Optional*. For mask stickers, the position where the mask should be " -"placed" -msgstr "" - -#: ../../docstring aiogram.types.sticker.Sticker.custom_emoji_id:1 of -msgid "" -"*Optional*. For custom emoji stickers, unique identifier of the custom " -"emoji" -msgstr "" - -#: ../../docstring aiogram.types.sticker.Sticker.needs_repainting:1 of -msgid "" -"*Optional*. :code:`True`, if the sticker must be repainted to a text " -"color in messages, the color of the Telegram Premium badge in emoji " -"status, white color on chat photos, or another appropriate color in other" -" places" -msgstr "" - -#: ../../docstring aiogram.types.sticker.Sticker.file_size:1 of -msgid "*Optional*. File size in bytes" -msgstr "" - -#: aiogram.types.sticker.Sticker.set_position_in_set:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.set_sticker_position_in_set.SetStickerPositionInSet`" -" will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.sticker.Sticker.delete_from_set:4 -#: aiogram.types.sticker.Sticker.set_position_in_set:4 of -msgid ":code:`sticker`" -msgstr "" - -#: aiogram.types.sticker.Sticker.set_position_in_set:6 of -msgid "" -"Use this method to move a sticker in a set created by the bot to a " -"specific position. Returns :code:`True` on success." -msgstr "" - -#: aiogram.types.sticker.Sticker.set_position_in_set:8 of -msgid "Source: https://core.telegram.org/bots/api#setstickerpositioninset" -msgstr "" - -#: aiogram.types.sticker.Sticker.set_position_in_set of -msgid "Parameters" -msgstr "" - -#: aiogram.types.sticker.Sticker.set_position_in_set:10 of -msgid "New sticker position in the set, zero-based" -msgstr "" - -#: aiogram.types.sticker.Sticker.delete_from_set -#: aiogram.types.sticker.Sticker.set_position_in_set of -msgid "Returns" -msgstr "" - -#: aiogram.types.sticker.Sticker.set_position_in_set:11 of -msgid "" -"instance of method " -":class:`aiogram.methods.set_sticker_position_in_set.SetStickerPositionInSet`" -msgstr "" - -#: aiogram.types.sticker.Sticker.delete_from_set:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.delete_sticker_from_set.DeleteStickerFromSet` " -"will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.sticker.Sticker.delete_from_set:6 of -msgid "" -"Use this method to delete a sticker from a set created by the bot. " -"Returns :code:`True` on success." -msgstr "" - -#: aiogram.types.sticker.Sticker.delete_from_set:8 of -msgid "Source: https://core.telegram.org/bots/api#deletestickerfromset" -msgstr "" - -#: aiogram.types.sticker.Sticker.delete_from_set:10 of -msgid "" -"instance of method " -":class:`aiogram.methods.delete_sticker_from_set.DeleteStickerFromSet`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/sticker_set.po b/docs/locale/en/LC_MESSAGES/api/types/sticker_set.po deleted file mode 100644 index 6e76be18..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/sticker_set.po +++ /dev/null @@ -1,64 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/sticker_set.rst:3 -msgid "StickerSet" -msgstr "" - -#: aiogram.types.sticker_set.StickerSet:1 of -msgid "This object represents a sticker set." -msgstr "" - -#: aiogram.types.sticker_set.StickerSet:3 of -msgid "Source: https://core.telegram.org/bots/api#stickerset" -msgstr "" - -#: ../../docstring aiogram.types.sticker_set.StickerSet.name:1 of -msgid "Sticker set name" -msgstr "" - -#: ../../docstring aiogram.types.sticker_set.StickerSet.title:1 of -msgid "Sticker set title" -msgstr "" - -#: ../../docstring aiogram.types.sticker_set.StickerSet.sticker_type:1 of -msgid "" -"Type of stickers in the set, currently one of 'regular', 'mask', " -"'custom_emoji'" -msgstr "" - -#: ../../docstring aiogram.types.sticker_set.StickerSet.is_animated:1 of -msgid "" -":code:`True`, if the sticker set contains `animated stickers " -"`_" -msgstr "" - -#: ../../docstring aiogram.types.sticker_set.StickerSet.is_video:1 of -msgid "" -":code:`True`, if the sticker set contains `video stickers " -"`_" -msgstr "" - -#: ../../docstring aiogram.types.sticker_set.StickerSet.stickers:1 of -msgid "List of all set stickers" -msgstr "" - -#: ../../docstring aiogram.types.sticker_set.StickerSet.thumb:1 of -msgid "*Optional*. Sticker set thumbnail in the .WEBP, .TGS, or .WEBM format" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/successful_payment.po b/docs/locale/en/LC_MESSAGES/api/types/successful_payment.po deleted file mode 100644 index d6152e59..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/successful_payment.po +++ /dev/null @@ -1,75 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/successful_payment.rst:3 -msgid "SuccessfulPayment" -msgstr "" - -#: aiogram.types.successful_payment.SuccessfulPayment:1 of -msgid "This object contains basic information about a successful payment." -msgstr "" - -#: aiogram.types.successful_payment.SuccessfulPayment:3 of -msgid "Source: https://core.telegram.org/bots/api#successfulpayment" -msgstr "" - -#: ../../docstring -#: aiogram.types.successful_payment.SuccessfulPayment.currency:1 of -msgid "" -"Three-letter ISO 4217 `currency `_ code" -msgstr "" - -#: ../../docstring -#: aiogram.types.successful_payment.SuccessfulPayment.total_amount:1 of -msgid "" -"Total price in the *smallest units* of the currency (integer, **not** " -"float/double). For example, for a price of :code:`US$ 1.45` pass " -":code:`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)." -msgstr "" - -#: ../../docstring -#: aiogram.types.successful_payment.SuccessfulPayment.invoice_payload:1 of -msgid "Bot specified invoice payload" -msgstr "" - -#: ../../docstring -#: aiogram.types.successful_payment.SuccessfulPayment.telegram_payment_charge_id:1 -#: of -msgid "Telegram payment identifier" -msgstr "" - -#: ../../docstring -#: aiogram.types.successful_payment.SuccessfulPayment.provider_payment_charge_id:1 -#: of -msgid "Provider payment identifier" -msgstr "" - -#: ../../docstring -#: aiogram.types.successful_payment.SuccessfulPayment.shipping_option_id:1 of -msgid "*Optional*. Identifier of the shipping option chosen by the user" -msgstr "" - -#: ../../docstring -#: aiogram.types.successful_payment.SuccessfulPayment.order_info:1 of -msgid "*Optional*. Order information provided by the user" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/update.po b/docs/locale/en/LC_MESSAGES/api/types/update.po deleted file mode 100644 index 940848f4..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/update.po +++ /dev/null @@ -1,148 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/update.rst:3 -msgid "Update" -msgstr "" - -#: aiogram.types.update.Update:1 of -msgid "" -"This `object `_ " -"represents an incoming update." -msgstr "" - -#: aiogram.types.update.Update:3 of -msgid "" -"At most **one** of the optional parameters can be present in any given " -"update." -msgstr "" - -#: aiogram.types.update.Update:5 of -msgid "Source: https://core.telegram.org/bots/api#update" -msgstr "" - -#: ../../docstring aiogram.types.update.Update.update_id:1 of -msgid "" -"The update's unique identifier. Update identifiers start from a certain " -"positive number and increase sequentially. This ID becomes especially " -"handy if you're using `webhooks " -"`_, since it allows you to" -" ignore repeated updates or to restore the correct update sequence, " -"should they get out of order. If there are no new updates for at least a " -"week, then identifier of the next update will be chosen randomly instead " -"of sequentially." -msgstr "" - -#: ../../docstring aiogram.types.update.Update.message:1 of -msgid "*Optional*. New incoming message of any kind - text, photo, sticker, etc." -msgstr "" - -#: ../../docstring aiogram.types.update.Update.edited_message:1 of -msgid "" -"*Optional*. New version of a message that is known to the bot and was " -"edited" -msgstr "" - -#: ../../docstring aiogram.types.update.Update.channel_post:1 of -msgid "" -"*Optional*. New incoming channel post of any kind - text, photo, sticker," -" etc." -msgstr "" - -#: ../../docstring aiogram.types.update.Update.edited_channel_post:1 of -msgid "" -"*Optional*. New version of a channel post that is known to the bot and " -"was edited" -msgstr "" - -#: ../../docstring aiogram.types.update.Update.inline_query:1 of -msgid "" -"*Optional*. New incoming `inline `_ query" -msgstr "" - -#: ../../docstring aiogram.types.update.Update.chosen_inline_result:1 of -msgid "" -"*Optional*. The result of an `inline `_ query that was chosen by a user and sent to their chat " -"partner. Please see our documentation on the `feedback collecting " -"`_ for details" -" on how to enable these updates for your bot." -msgstr "" - -#: ../../docstring aiogram.types.update.Update.callback_query:1 of -msgid "*Optional*. New incoming callback query" -msgstr "" - -#: ../../docstring aiogram.types.update.Update.shipping_query:1 of -msgid "" -"*Optional*. New incoming shipping query. Only for invoices with flexible " -"price" -msgstr "" - -#: ../../docstring aiogram.types.update.Update.pre_checkout_query:1 of -msgid "" -"*Optional*. New incoming pre-checkout query. Contains full information " -"about checkout" -msgstr "" - -#: ../../docstring aiogram.types.update.Update.poll:1 of -msgid "" -"*Optional*. New poll state. Bots receive only updates about stopped polls" -" and polls, which are sent by the bot" -msgstr "" - -#: ../../docstring aiogram.types.update.Update.poll_answer:1 of -msgid "" -"*Optional*. A user changed their answer in a non-anonymous poll. Bots " -"receive new votes only in polls that were sent by the bot itself." -msgstr "" - -#: ../../docstring aiogram.types.update.Update.my_chat_member:1 of -msgid "" -"*Optional*. The bot's chat member status was updated in a chat. For " -"private chats, this update is received only when the bot is blocked or " -"unblocked by the user." -msgstr "" - -#: ../../docstring aiogram.types.update.Update.chat_member:1 of -msgid "" -"*Optional*. A chat member's status was updated in a chat. The bot must be" -" an administrator in the chat and must explicitly specify 'chat_member' " -"in the list of *allowed_updates* to receive these updates." -msgstr "" - -#: ../../docstring aiogram.types.update.Update.chat_join_request:1 of -msgid "" -"*Optional*. A request to join the chat has been sent. The bot must have " -"the *can_invite_users* administrator right in the chat to receive these " -"updates." -msgstr "" - -#: aiogram.types.update.Update.event_type:1 of -msgid "Detect update type If update type is unknown, raise UpdateTypeLookupError" -msgstr "" - -#: aiogram.types.update.Update.event_type of -msgid "Returns" -msgstr "" - -#: aiogram.types.update.UpdateTypeLookupError:1 of -msgid "Update does not contain any known event type." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/user.po b/docs/locale/en/LC_MESSAGES/api/types/user.po deleted file mode 100644 index b7e590b3..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/user.po +++ /dev/null @@ -1,157 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/user.rst:3 -msgid "User" -msgstr "" - -#: aiogram.types.user.User:1 of -msgid "This object represents a Telegram user or bot." -msgstr "" - -#: aiogram.types.user.User:3 of -msgid "Source: https://core.telegram.org/bots/api#user" -msgstr "" - -#: ../../docstring aiogram.types.user.User.id:1 of -msgid "" -"Unique identifier for this user or bot. This number may have more than 32" -" significant bits and some programming languages may have " -"difficulty/silent defects in interpreting it. But it has at most 52 " -"significant bits, so a 64-bit integer or double-precision float type are " -"safe for storing this identifier." -msgstr "" - -#: ../../docstring aiogram.types.user.User.is_bot:1 of -msgid ":code:`True`, if this user is a bot" -msgstr "" - -#: ../../docstring aiogram.types.user.User.first_name:1 of -msgid "User's or bot's first name" -msgstr "" - -#: ../../docstring aiogram.types.user.User.last_name:1 of -msgid "*Optional*. User's or bot's last name" -msgstr "" - -#: ../../docstring aiogram.types.user.User.username:1 of -msgid "*Optional*. User's or bot's username" -msgstr "" - -#: ../../docstring aiogram.types.user.User.language_code:1 of -msgid "" -"*Optional*. `IETF language tag " -"`_ of the user's " -"language" -msgstr "" - -#: ../../docstring aiogram.types.user.User.is_premium:1 of -msgid "*Optional*. :code:`True`, if this user is a Telegram Premium user" -msgstr "" - -#: ../../docstring aiogram.types.user.User.added_to_attachment_menu:1 of -msgid "" -"*Optional*. :code:`True`, if this user added the bot to the attachment " -"menu" -msgstr "" - -#: ../../docstring aiogram.types.user.User.can_join_groups:1 of -msgid "" -"*Optional*. :code:`True`, if the bot can be invited to groups. Returned " -"only in :class:`aiogram.methods.get_me.GetMe`." -msgstr "" - -#: ../../docstring aiogram.types.user.User.can_read_all_group_messages:1 of -msgid "" -"*Optional*. :code:`True`, if `privacy mode " -"`_ is disabled for " -"the bot. Returned only in :class:`aiogram.methods.get_me.GetMe`." -msgstr "" - -#: ../../docstring aiogram.types.user.User.supports_inline_queries:1 of -msgid "" -"*Optional*. :code:`True`, if the bot supports inline queries. Returned " -"only in :class:`aiogram.methods.get_me.GetMe`." -msgstr "" - -#: aiogram.types.user.User.get_profile_photos:1 of -msgid "" -"Shortcut for method " -":class:`aiogram.methods.get_user_profile_photos.GetUserProfilePhotos` " -"will automatically fill method attributes:" -msgstr "" - -#: aiogram.types.user.User.get_profile_photos:4 of -msgid ":code:`user_id`" -msgstr "" - -#: aiogram.types.user.User.get_profile_photos:6 of -msgid "" -"Use this method to get a list of profile pictures for a user. Returns a " -":class:`aiogram.types.user_profile_photos.UserProfilePhotos` object." -msgstr "" - -#: aiogram.types.user.User.get_profile_photos:8 of -msgid "Source: https://core.telegram.org/bots/api#getuserprofilephotos" -msgstr "" - -#: aiogram.types.user.User.get_profile_photos of -msgid "Parameters" -msgstr "" - -#: aiogram.types.user.User.get_profile_photos:10 of -msgid "" -"Sequential number of the first photo to be returned. By default, all " -"photos are returned." -msgstr "" - -#: aiogram.types.user.User.get_profile_photos:11 of -msgid "" -"Limits the number of photos to be retrieved. Values between 1-100 are " -"accepted. Defaults to 100." -msgstr "" - -#: aiogram.types.user.User.get_profile_photos of -msgid "Returns" -msgstr "" - -#: aiogram.types.user.User.get_profile_photos:12 of -msgid "" -"instance of method " -":class:`aiogram.methods.get_user_profile_photos.GetUserProfilePhotos`" -msgstr "" - -#~ msgid "This object represents a Telegram user or bot." -#~ msgstr "" - -#~ msgid "Source: https://core.telegram.org/bots/api#user" -#~ msgstr "" - -#~ msgid "" -#~ "This object represents a Telegram user" -#~ " or bot. Source: " -#~ "https://core.telegram.org/bots/api#user" -#~ msgstr "" - -#~ msgid "" -#~ "*Optional*. :code:`True`, if `privacy mode " -#~ "`_ is " -#~ "disabled for the bot. Returned only " -#~ "in :class:`aiogram.methods.get_me.GetMe`." -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/user_profile_photos.po b/docs/locale/en/LC_MESSAGES/api/types/user_profile_photos.po deleted file mode 100644 index a1a37319..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/user_profile_photos.po +++ /dev/null @@ -1,40 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/user_profile_photos.rst:3 -msgid "UserProfilePhotos" -msgstr "" - -#: aiogram.types.user_profile_photos.UserProfilePhotos:1 of -msgid "This object represent a user's profile pictures." -msgstr "" - -#: aiogram.types.user_profile_photos.UserProfilePhotos:3 of -msgid "Source: https://core.telegram.org/bots/api#userprofilephotos" -msgstr "" - -#: ../../docstring -#: aiogram.types.user_profile_photos.UserProfilePhotos.total_count:1 of -msgid "Total number of profile pictures the target user has" -msgstr "" - -#: ../../docstring aiogram.types.user_profile_photos.UserProfilePhotos.photos:1 -#: of -msgid "Requested profile pictures (in up to 4 sizes each)" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/user_shared.po b/docs/locale/en/LC_MESSAGES/api/types/user_shared.po deleted file mode 100644 index d725744c..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/user_shared.po +++ /dev/null @@ -1,49 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2023, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2023. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/types/user_shared.rst:3 -msgid "UserShared" -msgstr "" - -#: aiogram.types.user_shared.UserShared:1 of -msgid "" -"This object contains information about the user whose identifier was " -"shared with the bot using a " -":class:`aiogram.types.keyboard_button_request_user.KeyboardButtonRequestUser`" -" button." -msgstr "" - -#: aiogram.types.user_shared.UserShared:3 of -msgid "Source: https://core.telegram.org/bots/api#usershared" -msgstr "" - -#: ../../docstring aiogram.types.user_shared.UserShared.request_id:1 of -msgid "Identifier of the request" -msgstr "" - -#: ../../docstring aiogram.types.user_shared.UserShared.user_id:1 of -msgid "" -"Identifier of the shared user. This number may have more than 32 " -"significant bits and some programming languages may have " -"difficulty/silent defects in interpreting it. But it has at most 52 " -"significant bits, so a 64-bit integer or double-precision float type are " -"safe for storing this identifier. The bot may not have access to the user" -" and could be unable to use this identifier, unless the user is already " -"known to the bot by some other means." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/venue.po b/docs/locale/en/LC_MESSAGES/api/types/venue.po deleted file mode 100644 index 949a414e..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/venue.po +++ /dev/null @@ -1,63 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/venue.rst:3 -msgid "Venue" -msgstr "" - -#: aiogram.types.venue.Venue:1 of -msgid "This object represents a venue." -msgstr "" - -#: aiogram.types.venue.Venue:3 of -msgid "Source: https://core.telegram.org/bots/api#venue" -msgstr "" - -#: ../../docstring aiogram.types.venue.Venue.location:1 of -msgid "Venue location. Can't be a live location" -msgstr "" - -#: ../../docstring aiogram.types.venue.Venue.title:1 of -msgid "Name of the venue" -msgstr "" - -#: ../../docstring aiogram.types.venue.Venue.address:1 of -msgid "Address of the venue" -msgstr "" - -#: ../../docstring aiogram.types.venue.Venue.foursquare_id:1 of -msgid "*Optional*. Foursquare identifier of the venue" -msgstr "" - -#: ../../docstring aiogram.types.venue.Venue.foursquare_type:1 of -msgid "" -"*Optional*. Foursquare type of the venue. (For example, " -"'arts_entertainment/default', 'arts_entertainment/aquarium' or " -"'food/icecream'.)" -msgstr "" - -#: ../../docstring aiogram.types.venue.Venue.google_place_id:1 of -msgid "*Optional*. Google Places identifier of the venue" -msgstr "" - -#: ../../docstring aiogram.types.venue.Venue.google_place_type:1 of -msgid "" -"*Optional*. Google Places type of the venue. (See `supported types " -"`_.)" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/video.po b/docs/locale/en/LC_MESSAGES/api/types/video.po deleted file mode 100644 index d3df202b..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/video.po +++ /dev/null @@ -1,72 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/video.rst:3 -msgid "Video" -msgstr "" - -#: aiogram.types.video.Video:1 of -msgid "This object represents a video file." -msgstr "" - -#: aiogram.types.video.Video:3 of -msgid "Source: https://core.telegram.org/bots/api#video" -msgstr "" - -#: ../../docstring aiogram.types.video.Video.file_id:1 of -msgid "Identifier for this file, which can be used to download or reuse the file" -msgstr "" - -#: ../../docstring aiogram.types.video.Video.file_unique_id:1 of -msgid "" -"Unique identifier for this file, which is supposed to be the same over " -"time and for different bots. Can't be used to download or reuse the file." -msgstr "" - -#: ../../docstring aiogram.types.video.Video.width:1 of -msgid "Video width as defined by sender" -msgstr "" - -#: ../../docstring aiogram.types.video.Video.height:1 of -msgid "Video height as defined by sender" -msgstr "" - -#: ../../docstring aiogram.types.video.Video.duration:1 of -msgid "Duration of the video in seconds as defined by sender" -msgstr "" - -#: ../../docstring aiogram.types.video.Video.thumb:1 of -msgid "*Optional*. Video thumbnail" -msgstr "" - -#: ../../docstring aiogram.types.video.Video.file_name:1 of -msgid "*Optional*. Original filename as defined by sender" -msgstr "" - -#: ../../docstring aiogram.types.video.Video.mime_type:1 of -msgid "*Optional*. MIME type of the file as defined by sender" -msgstr "" - -#: ../../docstring aiogram.types.video.Video.file_size:1 of -msgid "" -"*Optional*. File size in bytes. It can be bigger than 2^31 and some " -"programming languages may have difficulty/silent defects in interpreting " -"it. But it has at most 52 significant bits, so a signed 64-bit integer or" -" double-precision float type are safe for storing this value." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/video_chat_ended.po b/docs/locale/en/LC_MESSAGES/api/types/video_chat_ended.po deleted file mode 100644 index 85fca928..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/video_chat_ended.po +++ /dev/null @@ -1,36 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/video_chat_ended.rst:3 -msgid "VideoChatEnded" -msgstr "" - -#: aiogram.types.video_chat_ended.VideoChatEnded:1 of -msgid "" -"This object represents a service message about a video chat ended in the " -"chat." -msgstr "" - -#: aiogram.types.video_chat_ended.VideoChatEnded:3 of -msgid "Source: https://core.telegram.org/bots/api#videochatended" -msgstr "" - -#: ../../docstring aiogram.types.video_chat_ended.VideoChatEnded.duration:1 of -msgid "Video chat duration in seconds" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/video_chat_participants_invited.po b/docs/locale/en/LC_MESSAGES/api/types/video_chat_participants_invited.po deleted file mode 100644 index 003f340f..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/video_chat_participants_invited.po +++ /dev/null @@ -1,40 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/video_chat_participants_invited.rst:3 -msgid "VideoChatParticipantsInvited" -msgstr "" - -#: aiogram.types.video_chat_participants_invited.VideoChatParticipantsInvited:1 -#: of -msgid "" -"This object represents a service message about new members invited to a " -"video chat." -msgstr "" - -#: aiogram.types.video_chat_participants_invited.VideoChatParticipantsInvited:3 -#: of -msgid "Source: https://core.telegram.org/bots/api#videochatparticipantsinvited" -msgstr "" - -#: ../../docstring -#: aiogram.types.video_chat_participants_invited.VideoChatParticipantsInvited.users:1 -#: of -msgid "New members that were invited to the video chat" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/video_chat_scheduled.po b/docs/locale/en/LC_MESSAGES/api/types/video_chat_scheduled.po deleted file mode 100644 index cefac90b..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/video_chat_scheduled.po +++ /dev/null @@ -1,39 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/video_chat_scheduled.rst:3 -msgid "VideoChatScheduled" -msgstr "" - -#: aiogram.types.video_chat_scheduled.VideoChatScheduled:1 of -msgid "" -"This object represents a service message about a video chat scheduled in " -"the chat." -msgstr "" - -#: aiogram.types.video_chat_scheduled.VideoChatScheduled:3 of -msgid "Source: https://core.telegram.org/bots/api#videochatscheduled" -msgstr "" - -#: ../../docstring -#: aiogram.types.video_chat_scheduled.VideoChatScheduled.start_date:1 of -msgid "" -"Point in time (Unix timestamp) when the video chat is supposed to be " -"started by a chat administrator" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/video_chat_started.po b/docs/locale/en/LC_MESSAGES/api/types/video_chat_started.po deleted file mode 100644 index c4b7b655..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/video_chat_started.po +++ /dev/null @@ -1,32 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/video_chat_started.rst:3 -msgid "VideoChatStarted" -msgstr "" - -#: aiogram.types.video_chat_started.VideoChatStarted:1 of -msgid "" -"This object represents a service message about a video chat started in " -"the chat. Currently holds no information." -msgstr "" - -#: aiogram.types.video_chat_started.VideoChatStarted:3 of -msgid "Source: https://core.telegram.org/bots/api#videochatstarted" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/video_note.po b/docs/locale/en/LC_MESSAGES/api/types/video_note.po deleted file mode 100644 index e2a1f689..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/video_note.po +++ /dev/null @@ -1,61 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/video_note.rst:3 -msgid "VideoNote" -msgstr "" - -#: aiogram.types.video_note.VideoNote:1 of -msgid "" -"This object represents a `video message `_ (available in Telegram apps as of `v.4.0 " -"`_)." -msgstr "" - -#: aiogram.types.video_note.VideoNote:3 of -msgid "Source: https://core.telegram.org/bots/api#videonote" -msgstr "" - -#: ../../docstring aiogram.types.video_note.VideoNote.file_id:1 of -msgid "Identifier for this file, which can be used to download or reuse the file" -msgstr "" - -#: ../../docstring aiogram.types.video_note.VideoNote.file_unique_id:1 of -msgid "" -"Unique identifier for this file, which is supposed to be the same over " -"time and for different bots. Can't be used to download or reuse the file." -msgstr "" - -#: ../../docstring aiogram.types.video_note.VideoNote.length:1 of -msgid "" -"Video width and height (diameter of the video message) as defined by " -"sender" -msgstr "" - -#: ../../docstring aiogram.types.video_note.VideoNote.duration:1 of -msgid "Duration of the video in seconds as defined by sender" -msgstr "" - -#: ../../docstring aiogram.types.video_note.VideoNote.thumb:1 of -msgid "*Optional*. Video thumbnail" -msgstr "" - -#: ../../docstring aiogram.types.video_note.VideoNote.file_size:1 of -msgid "*Optional*. File size in bytes" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/voice.po b/docs/locale/en/LC_MESSAGES/api/types/voice.po deleted file mode 100644 index 1f0abe93..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/voice.po +++ /dev/null @@ -1,56 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/voice.rst:3 -msgid "Voice" -msgstr "" - -#: aiogram.types.voice.Voice:1 of -msgid "This object represents a voice note." -msgstr "" - -#: aiogram.types.voice.Voice:3 of -msgid "Source: https://core.telegram.org/bots/api#voice" -msgstr "" - -#: ../../docstring aiogram.types.voice.Voice.file_id:1 of -msgid "Identifier for this file, which can be used to download or reuse the file" -msgstr "" - -#: ../../docstring aiogram.types.voice.Voice.file_unique_id:1 of -msgid "" -"Unique identifier for this file, which is supposed to be the same over " -"time and for different bots. Can't be used to download or reuse the file." -msgstr "" - -#: ../../docstring aiogram.types.voice.Voice.duration:1 of -msgid "Duration of the audio in seconds as defined by sender" -msgstr "" - -#: ../../docstring aiogram.types.voice.Voice.mime_type:1 of -msgid "*Optional*. MIME type of the file as defined by sender" -msgstr "" - -#: ../../docstring aiogram.types.voice.Voice.file_size:1 of -msgid "" -"*Optional*. File size in bytes. It can be bigger than 2^31 and some " -"programming languages may have difficulty/silent defects in interpreting " -"it. But it has at most 52 significant bits, so a signed 64-bit integer or" -" double-precision float type are safe for storing this value." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/web_app_data.po b/docs/locale/en/LC_MESSAGES/api/types/web_app_data.po deleted file mode 100644 index 812f3b5c..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/web_app_data.po +++ /dev/null @@ -1,44 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/web_app_data.rst:3 -msgid "WebAppData" -msgstr "" - -#: aiogram.types.web_app_data.WebAppData:1 of -msgid "" -"Describes data sent from a `Web App " -"`_ to the bot." -msgstr "" - -#: aiogram.types.web_app_data.WebAppData:3 of -msgid "Source: https://core.telegram.org/bots/api#webappdata" -msgstr "" - -#: ../../docstring aiogram.types.web_app_data.WebAppData.data:1 of -msgid "" -"The data. Be aware that a bad client can send arbitrary data in this " -"field." -msgstr "" - -#: ../../docstring aiogram.types.web_app_data.WebAppData.button_text:1 of -msgid "" -"Text of the *web_app* keyboard button from which the Web App was opened. " -"Be aware that a bad client can send arbitrary data in this field." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/web_app_info.po b/docs/locale/en/LC_MESSAGES/api/types/web_app_info.po deleted file mode 100644 index 4a2e122f..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/web_app_info.po +++ /dev/null @@ -1,37 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/web_app_info.rst:3 -msgid "WebAppInfo" -msgstr "" - -#: aiogram.types.web_app_info.WebAppInfo:1 of -msgid "Describes a `Web App `_." -msgstr "" - -#: aiogram.types.web_app_info.WebAppInfo:3 of -msgid "Source: https://core.telegram.org/bots/api#webappinfo" -msgstr "" - -#: ../../docstring aiogram.types.web_app_info.WebAppInfo.url:1 of -msgid "" -"An HTTPS URL of a Web App to be opened with additional data as specified " -"in `Initializing Web Apps `_" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/webhook_info.po b/docs/locale/en/LC_MESSAGES/api/types/webhook_info.po deleted file mode 100644 index f8433f9d..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/webhook_info.po +++ /dev/null @@ -1,82 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/webhook_info.rst:3 -msgid "WebhookInfo" -msgstr "" - -#: aiogram.types.webhook_info.WebhookInfo:1 of -msgid "Describes the current status of a webhook." -msgstr "" - -#: aiogram.types.webhook_info.WebhookInfo:3 of -msgid "Source: https://core.telegram.org/bots/api#webhookinfo" -msgstr "" - -#: ../../docstring aiogram.types.webhook_info.WebhookInfo.url:1 of -msgid "Webhook URL, may be empty if webhook is not set up" -msgstr "" - -#: ../../docstring -#: aiogram.types.webhook_info.WebhookInfo.has_custom_certificate:1 of -msgid "" -":code:`True`, if a custom certificate was provided for webhook " -"certificate checks" -msgstr "" - -#: ../../docstring -#: aiogram.types.webhook_info.WebhookInfo.pending_update_count:1 of -msgid "Number of updates awaiting delivery" -msgstr "" - -#: ../../docstring aiogram.types.webhook_info.WebhookInfo.ip_address:1 of -msgid "*Optional*. Currently used webhook IP address" -msgstr "" - -#: ../../docstring aiogram.types.webhook_info.WebhookInfo.last_error_date:1 of -msgid "" -"*Optional*. Unix time for the most recent error that happened when trying" -" to deliver an update via webhook" -msgstr "" - -#: ../../docstring aiogram.types.webhook_info.WebhookInfo.last_error_message:1 -#: of -msgid "" -"*Optional*. Error message in human-readable format for the most recent " -"error that happened when trying to deliver an update via webhook" -msgstr "" - -#: ../../docstring -#: aiogram.types.webhook_info.WebhookInfo.last_synchronization_error_date:1 of -msgid "" -"*Optional*. Unix time of the most recent error that happened when trying " -"to synchronize available updates with Telegram datacenters" -msgstr "" - -#: ../../docstring aiogram.types.webhook_info.WebhookInfo.max_connections:1 of -msgid "" -"*Optional*. The maximum allowed number of simultaneous HTTPS connections " -"to the webhook for update delivery" -msgstr "" - -#: ../../docstring aiogram.types.webhook_info.WebhookInfo.allowed_updates:1 of -msgid "" -"*Optional*. A list of update types the bot is subscribed to. Defaults to " -"all update types except *chat_member*" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/write_access_allowed.po b/docs/locale/en/LC_MESSAGES/api/types/write_access_allowed.po deleted file mode 100644 index e2754dd2..00000000 --- a/docs/locale/en/LC_MESSAGES/api/types/write_access_allowed.po +++ /dev/null @@ -1,33 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../api/types/write_access_allowed.rst:3 -msgid "WriteAccessAllowed" -msgstr "" - -#: aiogram.types.write_access_allowed.WriteAccessAllowed:1 of -msgid "" -"This object represents a service message about a user allowing a bot " -"added to the attachment menu to write messages. Currently holds no " -"information." -msgstr "" - -#: aiogram.types.write_access_allowed.WriteAccessAllowed:3 of -msgid "Source: https://core.telegram.org/bots/api#writeaccessallowed" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/upload_file.po b/docs/locale/en/LC_MESSAGES/api/upload_file.po deleted file mode 100644 index 8e01cf9e..00000000 --- a/docs/locale/en/LC_MESSAGES/api/upload_file.po +++ /dev/null @@ -1,189 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../api/upload_file.rst:5 -msgid "How to upload file?" -msgstr "" - -#: ../../api/upload_file.rst:7 -msgid "" -"As says `official Telegram Bot API documentation " -"`_ there are three ways" -" to send files (photos, stickers, audio, media, etc.):" -msgstr "" - -#: ../../api/upload_file.rst:10 -msgid "" -"If the file is already stored somewhere on the Telegram servers or file " -"is available by the URL, you don't need to reupload it." -msgstr "" - -#: ../../api/upload_file.rst:13 -msgid "" -"But if you need to upload a new file just use subclasses of `InputFile " -"`__." -msgstr "" - -#: ../../api/upload_file.rst:15 -msgid "Here are the three different available builtin types of input file:" -msgstr "" - -#: ../../api/upload_file.rst:17 -msgid "" -":class:`aiogram.types.input_file.FSInputFile` - `uploading from file " -"system <#upload-from-file-system>`__" -msgstr "" - -#: ../../api/upload_file.rst:18 -msgid "" -":class:`aiogram.types.input_file.BufferedInputFile` - `uploading from " -"buffer <#upload-from-buffer>`__" -msgstr "" - -#: ../../api/upload_file.rst:19 -msgid "" -":class:`aiogram.types.input_file.URLInputFile` - `uploading from URL " -"<#upload-from-url>`__" -msgstr "" - -#: ../../api/upload_file.rst:23 -msgid "**Be respectful with Telegram**" -msgstr "" - -#: ../../api/upload_file.rst:25 -msgid "" -"Instances of `InputFile` are reusable. That's mean you can create " -"instance of InputFile and sent this file multiple times but Telegram does" -" not recommend to do that and when you upload file once just save their " -"`file_id` and use it in next times." -msgstr "" - -#: ../../api/upload_file.rst:31 -msgid "Upload from file system" -msgstr "" - -#: ../../api/upload_file.rst:33 -msgid "By first step you will need to import InputFile wrapper:" -msgstr "" - -#: ../../api/upload_file.rst:39 -msgid "Then you can use it:" -msgstr "" - -#: aiogram.types.input_file.BufferedInputFile.__init__:1 -#: aiogram.types.input_file.FSInputFile.__init__:1 of -msgid "Represents object for uploading files from filesystem" -msgstr "" - -#: aiogram.types.input_file.BufferedInputFile.__init__ -#: aiogram.types.input_file.FSInputFile.__init__ of -msgid "Parameters" -msgstr "" - -#: aiogram.types.input_file.FSInputFile.__init__:3 of -msgid "Path to file" -msgstr "" - -#: aiogram.types.input_file.FSInputFile.__init__:4 of -msgid "" -"Filename to be propagated to telegram. By default, will be parsed from " -"path" -msgstr "" - -#: aiogram.types.input_file.BufferedInputFile.__init__:5 -#: aiogram.types.input_file.FSInputFile.__init__:6 of -msgid "Uploading chunk size" -msgstr "" - -#: ../../api/upload_file.rst:52 -msgid "Upload from buffer" -msgstr "" - -#: ../../api/upload_file.rst:54 -msgid "" -"Files can be also passed from buffer (For example you generate image " -"using `Pillow `_ and you want " -"to send it to Telegram):" -msgstr "" - -#: ../../api/upload_file.rst:58 ../../api/upload_file.rst:80 -msgid "Import wrapper:" -msgstr "" - -#: ../../api/upload_file.rst:64 ../../api/upload_file.rst:86 -msgid "And then you can use it:" -msgstr "" - -#: aiogram.types.input_file.BufferedInputFile.__init__:3 of -msgid "Bytes" -msgstr "" - -#: aiogram.types.input_file.BufferedInputFile.__init__:4 of -msgid "Filename to be propagated to telegram." -msgstr "" - -#: ../../api/upload_file.rst:74 -msgid "Upload from url" -msgstr "" - -#: ../../api/upload_file.rst:76 -msgid "" -"If you need to upload a file from another server, but the direct link is " -"bound to your server's IP, or you want to bypass native `upload limits " -"`_ by URL, you can use " -":obj:`aiogram.types.input_file.URLInputFile`." -msgstr "" - -#~ msgid "Create buffer from file" -#~ msgstr "" - -#~ msgid "Returns" -#~ msgstr "" - -#~ msgid "instance of :obj:`BufferedInputFile`" -#~ msgstr "" - -#~ msgid "" -#~ "But if you need to upload new " -#~ "file just use subclasses of `InputFile" -#~ " `__." -#~ msgstr "" - -#~ msgid "Here is available three different builtin types of input file:" -#~ msgstr "" - -#~ msgid "" -#~ "Instances of `InputFile` is reusable. " -#~ "That's mean you can create instance " -#~ "of InputFile and sent this file " -#~ "multiple times but Telegram is not " -#~ "recommend to do that and when you" -#~ " upload file once just save their " -#~ "`file_id` and use it in next " -#~ "times." -#~ msgstr "" - -#~ msgid "" -#~ "Files can be also passed from " -#~ "buffer (For example you generate image" -#~ " using `Pillow " -#~ "`_ and the " -#~ "want's to sent it to the " -#~ "Telegram):" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/changelog.po b/docs/locale/en/LC_MESSAGES/changelog.po deleted file mode 100644 index ec08c2fa..00000000 --- a/docs/locale/en/LC_MESSAGES/changelog.po +++ /dev/null @@ -1,2620 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../../CHANGES.rst:3 -msgid "Changelog" -msgstr "" - -#: ../../[towncrier-fragments]:2 -msgid "\\ |release| [UNRELEASED DRAFT] (2023-03-11)" -msgstr "" - -#: ../../../CHANGES.rst:193 ../../../CHANGES.rst:243 ../../../CHANGES.rst:623 -#: ../../[towncrier-fragments]:5 -msgid "Improved Documentation" -msgstr "" - -#: ../../[towncrier-fragments]:7 -msgid "" -"Changed small grammar typos for `upload_file` `#1133 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:127 ../../../CHANGES.rst:204 ../../../CHANGES.rst:257 -#: ../../../CHANGES.rst:308 ../../../CHANGES.rst:362 ../../../CHANGES.rst:404 -#: ../../../CHANGES.rst:450 ../../../CHANGES.rst:510 ../../../CHANGES.rst:531 -#: ../../../CHANGES.rst:554 ../../../CHANGES.rst:591 ../../../CHANGES.rst:630 -#: ../../[towncrier-fragments]:12 -msgid "Misc" -msgstr "" - -#: ../../[towncrier-fragments]:14 -msgid "" -"Added full support of `Bot API 6.6 `_" -msgstr "" - -#: ../../[towncrier-fragments]:18 -msgid "" -"Note that this issue has breaking changes described in in the Bot API " -"changelog, this changes is not breaking in the API but breaking inside " -"aiogram because Beta stage is not finished." -msgstr "" - -#: ../../[towncrier-fragments]:21 -msgid "`#1139 `_" -msgstr "" - -#: ../../../CHANGES.rst:20 -msgid "3.0.0b7 (2023-02-18)" -msgstr "" - -#: ../../../CHANGES.rst:24 -msgid "" -"Note that this version has incompatibility with Python 3.8-3.9 in case " -"when you create an instance of Dispatcher outside of the any coroutine." -msgstr "" - -#: ../../../CHANGES.rst:26 -msgid "Sorry for the inconvenience, it will be fixed in the next version." -msgstr "" - -#: ../../../CHANGES.rst:28 -msgid "This code will not work:" -msgstr "" - -#: ../../../CHANGES.rst:40 -msgid "But if you change it like this it should works as well:" -msgstr "" - -#: ../../../CHANGES.rst:56 ../../../CHANGES.rst:156 ../../../CHANGES.rst:216 -#: ../../../CHANGES.rst:267 ../../../CHANGES.rst:340 ../../../CHANGES.rst:381 -#: ../../../CHANGES.rst:419 ../../../CHANGES.rst:467 ../../../CHANGES.rst:543 -#: ../../../CHANGES.rst:576 ../../../CHANGES.rst:607 -msgid "Features" -msgstr "" - -#: ../../../CHANGES.rst:58 -msgid "Added missing shortcuts, new enums, reworked old stuff" -msgstr "" - -#: ../../../CHANGES.rst:60 -msgid "" -"**Breaking** All previously added enums is re-generated in new place - " -"`aiogram.enums` instead of `aiogram.types`" -msgstr "" - -#: ../../../CHANGES.rst:78 -msgid "" -"**Added enums:** " -":class:`aiogram.enums.bot_command_scope_type.BotCommandScopeType`," -msgstr "" - -#: ../../../CHANGES.rst:64 -msgid "" -":class:`aiogram.enums.chat_action.ChatAction`, " -":class:`aiogram.enums.chat_member_status.ChatMemberStatus`, " -":class:`aiogram.enums.chat_type.ChatType`, " -":class:`aiogram.enums.content_type.ContentType`, " -":class:`aiogram.enums.dice_emoji.DiceEmoji`, " -":class:`aiogram.enums.inline_query_result_type.InlineQueryResultType`, " -":class:`aiogram.enums.input_media_type.InputMediaType`, " -":class:`aiogram.enums.mask_position_point.MaskPositionPoint`, " -":class:`aiogram.enums.menu_button_type.MenuButtonType`, " -":class:`aiogram.enums.message_entity_type.MessageEntityType`, " -":class:`aiogram.enums.parse_mode.ParseMode`, " -":class:`aiogram.enums.poll_type.PollType`, " -":class:`aiogram.enums.sticker_type.StickerType`, " -":class:`aiogram.enums.topic_icon_color.TopicIconColor`, " -":class:`aiogram.enums.update_type.UpdateType`," -msgstr "" - -#: ../../../CHANGES.rst:80 -msgid "**Added shortcuts**:" -msgstr "" - -#: ../../../CHANGES.rst:105 -msgid "*Chat* :meth:`aiogram.types.chat.Chat.get_administrators`," -msgstr "" - -#: ../../../CHANGES.rst:83 -msgid "" -":meth:`aiogram.types.chat.Chat.delete_message`, " -":meth:`aiogram.types.chat.Chat.revoke_invite_link`, " -":meth:`aiogram.types.chat.Chat.edit_invite_link`, " -":meth:`aiogram.types.chat.Chat.create_invite_link`, " -":meth:`aiogram.types.chat.Chat.export_invite_link`, " -":meth:`aiogram.types.chat.Chat.do`, " -":meth:`aiogram.types.chat.Chat.delete_sticker_set`, " -":meth:`aiogram.types.chat.Chat.set_sticker_set`, " -":meth:`aiogram.types.chat.Chat.get_member`, " -":meth:`aiogram.types.chat.Chat.get_member_count`, " -":meth:`aiogram.types.chat.Chat.leave`, " -":meth:`aiogram.types.chat.Chat.unpin_all_messages`, " -":meth:`aiogram.types.chat.Chat.unpin_message`, " -":meth:`aiogram.types.chat.Chat.pin_message`, " -":meth:`aiogram.types.chat.Chat.set_administrator_custom_title`, " -":meth:`aiogram.types.chat.Chat.set_permissions`, " -":meth:`aiogram.types.chat.Chat.promote`, " -":meth:`aiogram.types.chat.Chat.restrict`, " -":meth:`aiogram.types.chat.Chat.unban`, " -":meth:`aiogram.types.chat.Chat.ban`, " -":meth:`aiogram.types.chat.Chat.set_description`, " -":meth:`aiogram.types.chat.Chat.set_title`, " -":meth:`aiogram.types.chat.Chat.delete_photo`, " -":meth:`aiogram.types.chat.Chat.set_photo`," -msgstr "" - -#: ../../../CHANGES.rst:107 -msgid "*Sticker*: :meth:`aiogram.types.sticker.Sticker.set_position_in_set`," -msgstr "" - -#: ../../../CHANGES.rst:108 -msgid ":meth:`aiogram.types.sticker.Sticker.delete_from_set`," -msgstr "" - -#: ../../../CHANGES.rst:109 -msgid "*User*: :meth:`aiogram.types.user.User.get_profile_photos`" -msgstr "" - -#: ../../../CHANGES.rst:110 -msgid "`#952 `_" -msgstr "" - -#: ../../../CHANGES.rst:111 -msgid "" -"Added :ref:`callback answer ` feature `#1091 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:113 -msgid "" -"Added a method that allows you to compactly register routers `#1117 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:118 ../../../CHANGES.rst:181 ../../../CHANGES.rst:230 -#: ../../../CHANGES.rst:291 ../../../CHANGES.rst:349 ../../../CHANGES.rst:395 -#: ../../../CHANGES.rst:443 ../../../CHANGES.rst:499 ../../../CHANGES.rst:584 -#: ../../../CHANGES.rst:616 -msgid "Bugfixes" -msgstr "" - -#: ../../../CHANGES.rst:120 -msgid "" -"Check status code when downloading file `#816 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:122 -msgid "" -"Fixed `ignore_case` parameter in :obj:`aiogram.filters.command.Command` " -"filter `#1106 `_" -msgstr "" - -#: ../../../CHANGES.rst:129 -msgid "" -"Added integration with new code-generator named `Butcher " -"`_ `#1069 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:131 -msgid "" -"Added full support of `Bot API 6.4 `_ `#1088 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:133 -msgid "" -"Updated package metadata, moved build internals from Poetry to Hatch, " -"added contributing guides. `#1095 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:135 -msgid "" -"Added full support of `Bot API 6.5 `_" -msgstr "" - -#: ../../../CHANGES.rst:139 -msgid "" -"Note that :obj:`aiogram.types.chat_permissions.ChatPermissions` is " -"updated without backward compatibility, so now this object has no " -":code:`can_send_media_messages` attribute" -msgstr "" - -#: ../../../CHANGES.rst:141 -msgid "`#1112 `_" -msgstr "" - -#: ../../../CHANGES.rst:142 -msgid "" -"Replaced error :code:`TypeError: TelegramEventObserver.__call__() got an " -"unexpected keyword argument ''` with a more understandable one for " -"developers and with a link to the documentation. `#1114 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:145 -msgid "" -"Added possibility to reply into webhook with files `#1120 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:147 -msgid "" -"Reworked graceful shutdown. Added method to stop polling. Now polling " -"started from dispatcher can be stopped by signals gracefully without " -"errors (on Linux and Mac). `#1124 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:153 -msgid "3.0.0b6 (2022-11-18)" -msgstr "" - -#: ../../../CHANGES.rst:158 -msgid "" -"(again) Added possibility to combine filters with an *and*/*or* " -"operations." -msgstr "" - -#: ../../../CHANGES.rst:160 -msgid "" -"Read more in \":ref:`Combining filters `\" " -"documentation section `#1018 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:162 -msgid "Added following methods to ``Message`` class:" -msgstr "" - -#: ../../../CHANGES.rst:164 -msgid ":code:`Message.forward(...)`" -msgstr "" - -#: ../../../CHANGES.rst:165 -msgid ":code:`Message.edit_media(...)`" -msgstr "" - -#: ../../../CHANGES.rst:166 -msgid ":code:`Message.edit_live_location(...)`" -msgstr "" - -#: ../../../CHANGES.rst:167 -msgid ":code:`Message.stop_live_location(...)`" -msgstr "" - -#: ../../../CHANGES.rst:168 -msgid ":code:`Message.pin(...)`" -msgstr "" - -#: ../../../CHANGES.rst:169 -msgid ":code:`Message.unpin()`" -msgstr "" - -#: ../../../CHANGES.rst:170 -msgid "`#1030 `_" -msgstr "" - -#: ../../../CHANGES.rst:171 -msgid "Added following methods to :code:`User` class:" -msgstr "" - -#: ../../../CHANGES.rst:173 -msgid ":code:`User.mention_markdown(...)`" -msgstr "" - -#: ../../../CHANGES.rst:174 -msgid ":code:`User.mention_html(...)`" -msgstr "" - -#: ../../../CHANGES.rst:175 -msgid "`#1049 `_" -msgstr "" - -#: ../../../CHANGES.rst:176 -msgid "" -"Added full support of `Bot API 6.3 `_ `#1057 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:183 -msgid "" -"Fixed :code:`Message.send_invoice` and :code:`Message.reply_invoice`, " -"added missing arguments `#1047 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:185 -msgid "Fixed copy and forward in:" -msgstr "" - -#: ../../../CHANGES.rst:187 -msgid ":code:`Message.answer(...)`" -msgstr "" - -#: ../../../CHANGES.rst:188 -msgid ":code:`Message.copy_to(...)`" -msgstr "" - -#: ../../../CHANGES.rst:189 -msgid "`#1064 `_" -msgstr "" - -#: ../../../CHANGES.rst:195 -msgid "" -"Fixed UA translations in index.po `#1017 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:197 -msgid "" -"Fix typehints for :code:`Message`, :code:`reply_media_group` and " -":code:`answer_media_group` methods `#1029 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:199 -msgid "" -"Removed an old now non-working feature `#1060 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:206 -msgid "" -"Enabled testing on Python 3.11 `#1044 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:208 -msgid "" -"Added a mandatory dependency :code:`certifi` in due to in some cases on " -"systems that doesn't have updated ca-certificates the requests to Bot API" -" fails with reason :code:`[SSL: CERTIFICATE_VERIFY_FAILED] certificate " -"verify failed: self signed certificate in certificate chain` `#1066 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:213 -msgid "3.0.0b5 (2022-10-02)" -msgstr "" - -#: ../../../CHANGES.rst:218 -msgid "" -"Add PyPy support and run tests under PyPy `#985 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:220 -msgid "" -"Added message text to aiogram exceptions representation `#988 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:222 -msgid "" -"Added warning about using magic filter from `magic_filter` instead of " -"`aiogram`'s ones. Is recommended to use `from aiogram import F` instead " -"of `from magic_filter import F` `#990 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:225 -msgid "" -"Added more detailed error when server response can't be deserialized. " -"This feature will help to debug unexpected responses from the Server " -"`#1014 `_" -msgstr "" - -#: ../../../CHANGES.rst:232 -msgid "" -"Reworked error event, introduced " -":class:`aiogram.types.error_event.ErrorEvent` object. `#898 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:234 -msgid "" -"Fixed escaping markdown in `aiogram.utils.markdown` module `#903 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:236 -msgid "" -"Fixed polling crash when Telegram Bot API raises HTTP 429 status-code. " -"`#995 `_" -msgstr "" - -#: ../../../CHANGES.rst:238 -msgid "" -"Fixed empty mention in command parsing, now it will be None instead of an" -" empty string `#1013 `_" -msgstr "" - -#: ../../../CHANGES.rst:245 -msgid "" -"Initialized Docs translation (added Ukrainian language) `#925 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:250 -msgid "Deprecations and Removals" -msgstr "" - -#: ../../../CHANGES.rst:252 -msgid "" -"Removed filters factory as described in corresponding issue. `#942 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:259 -msgid "" -"Now Router/Dispatcher accepts only keyword arguments. `#982 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:264 -msgid "3.0.0b4 (2022-08-14)" -msgstr "" - -#: ../../../CHANGES.rst:269 -msgid "" -"Add class helper ChatAction for constants that Telegram BotAPI uses in " -"sendChatAction request. In my opinion, this will help users and will also" -" improve compatibility with 2.x version where similar class was called " -"\"ChatActions\". `#803 `_" -msgstr "" - -#: ../../../CHANGES.rst:273 -msgid "Added possibility to combine filters or invert result" -msgstr "" - -#: ../../../CHANGES.rst:275 -msgid "Example:" -msgstr "" - -#: ../../../CHANGES.rst:283 -msgid "`#894 `_" -msgstr "" - -#: ../../../CHANGES.rst:284 -msgid "" -"Fixed type hints for redis TTL params. `#922 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:286 -msgid "" -"Added `full_name` shortcut for `Chat` object `#929 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:293 -msgid "" -"Fixed false-positive coercing of Union types in API methods `#901 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:295 -msgid "Added 3 missing content types:" -msgstr "" - -#: ../../../CHANGES.rst:297 -msgid "proximity_alert_triggered" -msgstr "" - -#: ../../../CHANGES.rst:298 -msgid "supergroup_chat_created" -msgstr "" - -#: ../../../CHANGES.rst:299 -msgid "channel_chat_created" -msgstr "" - -#: ../../../CHANGES.rst:300 -msgid "`#906 `_" -msgstr "" - -#: ../../../CHANGES.rst:301 -msgid "" -"Fixed the ability to compare the state, now comparison to copy of the " -"state will return `True`. `#927 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:303 -msgid "" -"Fixed default lock kwargs in RedisEventIsolation. `#972 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:310 -msgid "" -"Restrict including routers with strings `#896 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:312 -msgid "" -"Changed CommandPatterType to CommandPatternType in " -"`aiogram/dispatcher/filters/command.py` `#907 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:314 -msgid "" -"Added full support of `Bot API 6.1 `_ `#936 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:316 -msgid "**Breaking!** More flat project structure" -msgstr "" - -#: ../../../CHANGES.rst:318 -msgid "These packages was moved, imports in your code should be fixed:" -msgstr "" - -#: ../../../CHANGES.rst:320 -msgid ":code:`aiogram.dispatcher.filters` -> :code:`aiogram.filters`" -msgstr "" - -#: ../../../CHANGES.rst:321 -msgid ":code:`aiogram.dispatcher.fsm` -> :code:`aiogram.fsm`" -msgstr "" - -#: ../../../CHANGES.rst:322 -msgid ":code:`aiogram.dispatcher.handler` -> :code:`aiogram.handler`" -msgstr "" - -#: ../../../CHANGES.rst:323 -msgid ":code:`aiogram.dispatcher.webhook` -> :code:`aiogram.webhook`" -msgstr "" - -#: ../../../CHANGES.rst:324 -msgid "" -":code:`aiogram.dispatcher.flags/*` -> :code:`aiogram.dispatcher.flags` " -"(single module instead of package)" -msgstr "" - -#: ../../../CHANGES.rst:325 -msgid "`#938 `_" -msgstr "" - -#: ../../../CHANGES.rst:326 -msgid "" -"Removed deprecated :code:`router._handler` and " -":code:`router.register__handler` methods. `#941 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:328 -msgid "" -"Deprecated filters factory. It will be removed in next Beta (3.0b5) `#942" -" `_" -msgstr "" - -#: ../../../CHANGES.rst:330 -msgid "" -"`MessageEntity` method `get_text` was removed and `extract` was renamed " -"to `extract_from` `#944 `_" -msgstr "" - -#: ../../../CHANGES.rst:332 -msgid "" -"Added full support of `Bot API 6.2 `_ `#975 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:337 -msgid "3.0.0b3 (2022-04-19)" -msgstr "" - -#: ../../../CHANGES.rst:342 -msgid "" -"Added possibility to get command magic result as handler argument `#889 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:344 -msgid "" -"Added full support of `Telegram Bot API 6.0 " -"`_ `#890 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:351 -msgid "" -"Fixed I18n lazy-proxy. Disabled caching. `#839 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:353 -msgid "" -"Added parsing of spoiler message entity `#865 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:355 -msgid "" -"Fixed default `parse_mode` for `Message.copy_to()` method. `#876 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:357 -msgid "" -"Fixed CallbackData factory parsing IntEnum's `#885 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:364 -msgid "" -"Added automated check that pull-request adds a changes description to " -"**CHANGES** directory `#873 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:366 -msgid "" -"Changed :code:`Message.html_text` and :code:`Message.md_text` attributes " -"behaviour when message has no text. The empty string will be used instead" -" of raising error. `#874 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:369 -msgid "" -"Used `redis-py` instead of `aioredis` package in due to this packages was" -" merged into single one `#882 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:371 -msgid "" -"Solved common naming problem with middlewares that confusing too much " -"developers - now you can't see the `middleware` and `middlewares` " -"attributes at the same point because this functionality encapsulated to " -"special interface. `#883 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:378 -msgid "3.0.0b2 (2022-02-19)" -msgstr "" - -#: ../../../CHANGES.rst:383 -msgid "" -"Added possibility to pass additional arguments into the aiohttp webhook " -"handler to use this arguments inside handlers as the same as it possible " -"in polling mode. `#785 `_" -msgstr "" - -#: ../../../CHANGES.rst:386 -msgid "" -"Added possibility to add handler flags via decorator (like `pytest.mark` " -"decorator but `aiogram.flags`) `#836 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:388 -msgid "" -"Added :code:`ChatActionSender` utility to automatically sends chat action" -" while long process is running." -msgstr "" - -#: ../../../CHANGES.rst:390 -msgid "" -"It also can be used as message middleware and can be customized via " -":code:`chat_action` flag. `#837 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:397 -msgid "" -"Fixed unexpected behavior of sequences in the StateFilter. `#791 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:399 -msgid "" -"Fixed exceptions filters `#827 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:406 -msgid "" -"Logger name for processing events is changed to :code:`aiogram.events`. " -"`#830 `_" -msgstr "" - -#: ../../../CHANGES.rst:408 -msgid "" -"Added full support of Telegram Bot API 5.6 and 5.7 `#835 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:410 -msgid "" -"**BREAKING** Events isolation mechanism is moved from FSM storages to " -"standalone managers `#838 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:416 -msgid "3.0.0b1 (2021-12-12)" -msgstr "" - -#: ../../../CHANGES.rst:421 -msgid "Added new custom operation for MagicFilter named :code:`as_`" -msgstr "" - -#: ../../../CHANGES.rst:423 -msgid "Now you can use it to get magic filter result as handler argument" -msgstr "" - -#: ../../../CHANGES.rst:439 -msgid "`#759 `_" -msgstr "" - -#: ../../../CHANGES.rst:445 -msgid "" -"Fixed: Missing :code:`ChatMemberHandler` import in " -":code:`aiogram/dispatcher/handler` `#751 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:452 -msgid "" -"Check :code:`destiny` in case of no :code:`with_destiny` enabled in " -"RedisStorage key builder `#776 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:454 -msgid "" -"Added full support of `Bot API 5.5 `_ `#777 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:456 -msgid "" -"Stop using feature from #336. From now settings of client-session should " -"be placed as initializer arguments instead of changing instance " -"attributes. `#778 `_" -msgstr "" - -#: ../../../CHANGES.rst:458 -msgid "" -"Make TelegramAPIServer files wrapper in local mode bi-directional " -"(server-client, client-server) Now you can convert local path to server " -"path and server path to local path. `#779 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:464 -msgid "3.0.0a18 (2021-11-10)" -msgstr "" - -#: ../../../CHANGES.rst:469 -msgid "" -"Breaking: Changed the signature of the session middlewares Breaking: " -"Renamed AiohttpSession.make_request method parameter from call to method " -"to match the naming in the base class Added middleware for logging " -"outgoing requests `#716 `_" -msgstr "" - -#: ../../../CHANGES.rst:473 -msgid "" -"Improved description of filters resolving error. For example when you try" -" to pass wrong type of argument to the filter but don't know why filter " -"is not resolved now you can get error like this:" -msgstr "" - -#: ../../../CHANGES.rst:483 -msgid "`#717 `_" -msgstr "" - -#: ../../../CHANGES.rst:484 -msgid "" -"**Breaking internal API change** Reworked FSM Storage record keys " -"propagation `#723 `_" -msgstr "" - -#: ../../../CHANGES.rst:487 -msgid "" -"Implemented new filter named :code:`MagicData(magic_data)` that helps to " -"filter event by data from middlewares or other filters" -msgstr "" - -#: ../../../CHANGES.rst:489 -msgid "" -"For example your bot is running with argument named :code:`config` that " -"contains the application config then you can filter event by value from " -"this config:" -msgstr "" - -#: ../../../CHANGES.rst:495 -msgid "`#724 `_" -msgstr "" - -#: ../../../CHANGES.rst:501 -msgid "" -"Fixed I18n context inside error handlers `#726 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:503 -msgid "" -"Fixed bot session closing before emit shutdown `#734 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:505 -msgid "" -"Fixed: bound filter resolving does not require children routers `#736 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:512 -msgid "" -"Enabled testing on Python 3.10 Removed `async_lru` dependency (is " -"incompatible with Python 3.10) and replaced usage with protected property" -" `#719 `_" -msgstr "" - -#: ../../../CHANGES.rst:515 -msgid "" -"Converted README.md to README.rst and use it as base file for docs `#725 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:517 -msgid "Rework filters resolving:" -msgstr "" - -#: ../../../CHANGES.rst:519 -msgid "Automatically apply Bound Filters with default values to handlers" -msgstr "" - -#: ../../../CHANGES.rst:520 -msgid "Fix data transfer from parent to included routers filters" -msgstr "" - -#: ../../../CHANGES.rst:521 -msgid "`#727 `_" -msgstr "" - -#: ../../../CHANGES.rst:522 -msgid "" -"Added full support of Bot API 5.4 https://core.telegram.org/bots/api-" -"changelog#november-5-2021 `#744 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:528 -msgid "3.0.0a17 (2021-09-24)" -msgstr "" - -#: ../../../CHANGES.rst:533 -msgid "" -"Added :code:`html_text` and :code:`md_text` to Message object `#708 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:535 -msgid "" -"Refactored I18n, added context managers for I18n engine and current " -"locale `#709 `_" -msgstr "" - -#: ../../../CHANGES.rst:540 -msgid "3.0.0a16 (2021-09-22)" -msgstr "" - -#: ../../../CHANGES.rst:545 -msgid "Added support of local Bot API server files downloading" -msgstr "" - -#: ../../../CHANGES.rst:547 -msgid "" -"When Local API is enabled files can be downloaded via " -"`bot.download`/`bot.download_file` methods. `#698 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:549 -msgid "" -"Implemented I18n & L10n support `#701 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:556 -msgid "" -"Covered by tests and docs KeyboardBuilder util `#699 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:558 -msgid "**Breaking!!!**. Refactored and renamed exceptions." -msgstr "" - -#: ../../../CHANGES.rst:560 -msgid "" -"Exceptions module was moved from :code:`aiogram.utils.exceptions` to " -":code:`aiogram.exceptions`" -msgstr "" - -#: ../../../CHANGES.rst:561 -msgid "Added prefix `Telegram` for all error classes" -msgstr "" - -#: ../../../CHANGES.rst:562 -msgid "`#700 `_" -msgstr "" - -#: ../../../CHANGES.rst:563 -msgid "" -"Replaced all :code:`pragma: no cover` marks via global " -":code:`.coveragerc` config `#702 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:565 -msgid "Updated dependencies." -msgstr "" - -#: ../../../CHANGES.rst:567 -msgid "" -"**Breaking for framework developers** Now all optional dependencies " -"should be installed as extra: `poetry install -E fast -E redis -E proxy " -"-E i18n -E docs` `#703 `_" -msgstr "" - -#: ../../../CHANGES.rst:573 -msgid "3.0.0a15 (2021-09-10)" -msgstr "" - -#: ../../../CHANGES.rst:578 -msgid "" -"Ability to iterate over all states in StatesGroup. Aiogram already had in" -" check for states group so this is relative feature. `#666 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:586 -msgid "" -"Fixed incorrect type checking in the " -":class:`aiogram.utils.keyboard.KeyboardBuilder` `#674 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:593 -msgid "" -"Disable ContentType filter by default `#668 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:595 -msgid "" -"Moved update type detection from Dispatcher to Update object `#669 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:597 -msgid "" -"Updated **pre-commit** config `#681 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:599 -msgid "" -"Reworked **handlers_in_use** util. Function moved to Router as method " -"**.resolve_used_update_types()** `#682 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:604 -msgid "3.0.0a14 (2021-08-17)" -msgstr "" - -#: ../../../CHANGES.rst:609 -msgid "" -"add aliases for edit/delete reply markup to Message `#662 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:611 -msgid "" -"Reworked outer middleware chain. Prevent to call many times the outer " -"middleware for each nested router `#664 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:618 -msgid "" -"Prepare parse mode for InputMessageContent in AnswerInlineQuery method " -"`#660 `_" -msgstr "" - -#: ../../../CHANGES.rst:625 -msgid "" -"Added integration with :code:`towncrier` `#602 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:632 -msgid "" -"Added `.editorconfig` `#650 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:634 -msgid "" -"Redis storage speedup globals `#651 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:636 -msgid "" -"add allow_sending_without_reply param to Message reply aliases `#663 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:7 -msgid "2.14.3 (2021-07-21)" -msgstr "" - -#: ../../../HISTORY.rst:9 -msgid "" -"Fixed :code:`ChatMember` type detection via adding customizable object " -"serialization mechanism (`#624 " -"`_, `#623 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:13 -msgid "2.14.2 (2021-07-26)" -msgstr "" - -#: ../../../HISTORY.rst:15 -msgid "" -"Fixed :code:`MemoryStorage` cleaner (`#619 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:16 -msgid "" -"Fixed unused default locale in :code:`I18nMiddleware` (`#562 " -"`_, `#563 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:20 -msgid "2.14 (2021-07-27)" -msgstr "" - -#: ../../../HISTORY.rst:22 -msgid "" -"Full support of Bot API 5.3 (`#610 " -"`_, `#614 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:23 -msgid "" -"Fixed :code:`Message.send_copy` method for polls (`#603 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:24 -msgid "" -"Updated pattern for :code:`GroupDeactivated` exception (`#549 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:25 -msgid "" -"Added :code:`caption_entities` field in :code:`InputMedia` base class " -"(`#583 `_)" -msgstr "" - -#: ../../../HISTORY.rst:26 -msgid "" -"Fixed HTML text decorations for tag :code:`pre` (`#597 " -"`_ fixes issues `#596 " -"`_ and `#481 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:27 -msgid "" -"Fixed :code:`Message.get_full_command` method for messages with caption " -"(`#576 `_)" -msgstr "" - -#: ../../../HISTORY.rst:28 -msgid "" -"Improved :code:`MongoStorage`: remove documents with empty data from " -":code:`aiogram_data` collection to save memory. (`#609 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:32 -msgid "2.13 (2021-04-28)" -msgstr "" - -#: ../../../HISTORY.rst:34 -msgid "" -"Added full support of Bot API 5.2 (`#572 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:35 -msgid "" -"Fixed usage of :code:`provider_data` argument in :code:`sendInvoice` " -"method call" -msgstr "" - -#: ../../../HISTORY.rst:36 -msgid "" -"Fixed builtin command filter args (`#556 " -"`_) (`#558 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:37 -msgid "" -"Allowed to use State instances FSM storage directly (`#542 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:38 -msgid "" -"Added possibility to get i18n locale without User instance (`#546 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:39 -msgid "" -"Fixed returning type of :code:`Bot.*_chat_invite_link()` methods `#548 " -"`_ (`#549 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:40 -msgid "" -"Fixed deep-linking util (`#569 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:41 -msgid "" -"Small changes in documentation - describe limits in docstrings " -"corresponding to the current limit. (`#565 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:42 -msgid "" -"Fixed internal call to deprecated 'is_private' method (`#553 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:43 -msgid "" -"Added possibility to use :code:`allowed_updates` argument in Polling mode" -" (`#564 `_)" -msgstr "" - -#: ../../../HISTORY.rst:47 -msgid "2.12.1 (2021-03-22)" -msgstr "" - -#: ../../../HISTORY.rst:49 -msgid "" -"Fixed :code:`TypeError: Value should be instance of 'User' not " -"'NoneType'` (`#527 `_)" -msgstr "" - -#: ../../../HISTORY.rst:50 -msgid "" -"Added missing :code:`Chat.message_auto_delete_time` field (`#535 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:51 -msgid "" -"Added :code:`MediaGroup` filter (`#528 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:52 -msgid "" -"Added :code:`Chat.delete_message` shortcut (`#526 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:53 -msgid "" -"Added mime types parsing for :code:`aiogram.types.Document` (`#431 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:54 -msgid "" -"Added warning in :code:`TelegramObject.__setitem__` when Telegram adds a " -"new field (`#532 `_)" -msgstr "" - -#: ../../../HISTORY.rst:55 -msgid "" -"Fixed :code:`examples/chat_type_filter.py` (`#533 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:56 -msgid "" -"Removed redundant definitions in framework code (`#531 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:60 -msgid "2.12 (2021-03-14)" -msgstr "" - -#: ../../../HISTORY.rst:62 -msgid "" -"Full support for Telegram Bot API 5.1 (`#519 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:63 -msgid "" -"Fixed sending playlist of audio files and documents (`#465 " -"`_, `#468 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:64 -msgid "" -"Fixed :code:`FSMContextProxy.setdefault` method (`#491 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:65 -msgid "" -"Fixed :code:`Message.answer_location` and :code:`Message.reply_location` " -"unable to send live location (`#497 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:66 -msgid "" -"Fixed :code:`user_id` and :code:`chat_id` getters from the context at " -"Dispatcher :code:`check_key`, :code:`release_key` and :code:`throttle` " -"methods (`#520 `_)" -msgstr "" - -#: ../../../HISTORY.rst:67 -msgid "" -"Fixed :code:`Chat.update_chat` method and all similar situations (`#516 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:68 -msgid "" -"Fixed :code:`MediaGroup` attach methods (`#514 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:69 -msgid "" -"Fixed state filter for inline keyboard query callback in groups (`#508 " -"`_, `#510 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:70 -msgid "" -"Added missing :code:`ContentTypes.DICE` (`#466 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:71 -msgid "" -"Added missing vcard argument to :code:`InputContactMessageContent` " -"constructor (`#473 `_)" -msgstr "" - -#: ../../../HISTORY.rst:72 -msgid "" -"Add missing exceptions: :code:`MessageIdInvalid`, " -":code:`CantRestrictChatOwner` and :code:`UserIsAnAdministratorOfTheChat` " -"(`#474 `_, `#512 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:73 -msgid "" -"Added :code:`answer_chat_action` to the :code:`Message` object (`#501 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:74 -msgid "" -"Added dice to :code:`message.send_copy` method (`#511 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:75 -msgid "Removed deprecation warning from :code:`Message.send_copy`" -msgstr "" - -#: ../../../HISTORY.rst:76 -msgid "" -"Added an example of integration between externally created aiohttp " -"Application and aiogram (`#433 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:77 -msgid "" -"Added :code:`split_separator` argument to :code:`safe_split_text` (`#515 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:78 -msgid "" -"Fixed some typos in docs and examples (`#489 " -"`_, `#490 " -"`_, `#498 " -"`_, `#504 " -"`_, `#514 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:82 -msgid "2.11.2 (2021-11-10)" -msgstr "" - -#: ../../../HISTORY.rst:84 -msgid "Fixed default parse mode" -msgstr "" - -#: ../../../HISTORY.rst:85 -msgid "" -"Added missing \"supports_streaming\" argument to answer_video method " -"`#462 `_" -msgstr "" - -#: ../../../HISTORY.rst:89 -msgid "2.11.1 (2021-11-10)" -msgstr "" - -#: ../../../HISTORY.rst:91 -msgid "Fixed files URL template" -msgstr "" - -#: ../../../HISTORY.rst:92 -msgid "" -"Fix MessageEntity serialization for API calls `#457 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:93 -msgid "" -"When entities are set, default parse_mode become disabled (`#461 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:94 -msgid "" -"Added parameter supports_streaming to reply_video, remove redundant " -"docstrings (`#459 `_)" -msgstr "" - -#: ../../../HISTORY.rst:95 -msgid "" -"Added missing parameter to promoteChatMember alias (`#458 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:99 -msgid "2.11 (2021-11-08)" -msgstr "" - -#: ../../../HISTORY.rst:101 -msgid "" -"Added full support of Telegram Bot API 5.0 (`#454 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:102 -msgid "Added possibility to more easy specify custom API Server (example)" -msgstr "" - -#: ../../../HISTORY.rst:103 -msgid "" -"WARNING: API method :code:`close` was named in Bot class as close_bot in " -"due to Bot instance already has method with the same name. It will be " -"changed in :code:`aiogram 3.0`" -msgstr "" - -#: ../../../HISTORY.rst:104 -msgid "" -"Added alias to Message object :code:`Message.copy_to` with deprecation of" -" :code:`Message.send_copy`" -msgstr "" - -#: ../../../HISTORY.rst:105 -msgid "" -":code:`ChatType.SUPER_GROUP` renamed to :code:`ChatType.SUPERGROUP` " -"(`#438 `_)" -msgstr "" - -#: ../../../HISTORY.rst:109 -msgid "2.10.1 (2021-09-14)" -msgstr "" - -#: ../../../HISTORY.rst:111 -msgid "" -"Fixed critical bug with getting asyncio event loop in executor. (`#424 " -"`_) :code:`AttributeError:" -" 'NoneType' object has no attribute 'run_until_complete'`" -msgstr "" - -#: ../../../HISTORY.rst:115 -msgid "2.10 (2021-09-13)" -msgstr "" - -#: ../../../HISTORY.rst:117 -msgid "" -"Breaking change: Stop using _MainThread event loop in bot/dispatcher " -"instances (`#397 `_)" -msgstr "" - -#: ../../../HISTORY.rst:118 -msgid "" -"Breaking change: Replaced aiomongo with motor (`#368 " -"`_, `#380 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:119 -msgid "" -"Fixed: TelegramObject's aren't destroyed after update handling `#307 " -"`_ (`#371 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:120 -msgid "" -"Add setting current context of Telegram types (`#369 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:121 -msgid "" -"Fixed markdown escaping issues (`#363 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:122 -msgid "" -"Fixed HTML characters escaping (`#409 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:123 -msgid "Fixed italic and underline decorations when parse entities to Markdown" -msgstr "" - -#: ../../../HISTORY.rst:124 -msgid "" -"Fixed `#413 `_: parse " -"entities positioning (`#414 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:125 -msgid "" -"Added missing thumb parameter (`#362 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:126 -msgid "" -"Added public methods to register filters and middlewares (`#370 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:127 -msgid "" -"Added ChatType builtin filter (`#356 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:128 -msgid "" -"Fixed IDFilter checking message from channel (`#376 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:129 -msgid "" -"Added missed answer_poll and reply_poll (`#384 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:130 -msgid "" -"Added possibility to ignore message caption in commands filter (`#383 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:131 -msgid "Fixed addStickerToSet method" -msgstr "" - -#: ../../../HISTORY.rst:132 -msgid "" -"Added preparing thumb in send_document method (`#391 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:133 -msgid "" -"Added exception MessageToPinNotFound (`#404 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:134 -msgid "" -"Fixed handlers parameter-spec solving (`#408 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:135 -msgid "" -"Fixed CallbackQuery.answer() returns nothing (`#420 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:136 -msgid "" -"CHOSEN_INLINE_RESULT is a correct API-term (`#415 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:137 -msgid "" -"Fixed missing attributes for Animation class (`#422 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:138 -msgid "" -"Added missed emoji argument to reply_dice (`#395 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:139 -msgid "" -"Added is_chat_creator method to ChatMemberStatus (`#394 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:140 -msgid "" -"Added missed ChatPermissions to __all__ (`#393 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:141 -msgid "" -"Added is_forward method to Message (`#390 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:142 -msgid "" -"Fixed usage of deprecated is_private function (`#421 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:144 -msgid "and many others documentation and examples changes:" -msgstr "" - -#: ../../../HISTORY.rst:146 -msgid "" -"Updated docstring of RedisStorage2 (`#423 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:147 -msgid "" -"Updated I18n example (added docs and fixed typos) (`#419 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:148 -msgid "" -"A little documentation revision (`#381 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:149 -msgid "" -"Added comments about correct errors_handlers usage (`#398 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:150 -msgid "" -"Fixed typo rexex -> regex (`#386 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:151 -msgid "" -"Fixed docs Quick start page code blocks (`#417 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:152 -msgid "" -"fixed type hints of callback_data (`#400 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:153 -msgid "" -"Prettify readme, update downloads stats badge (`#406 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:157 -msgid "2.9.2 (2021-06-13)" -msgstr "" - -#: ../../../HISTORY.rst:159 -msgid "" -"Fixed :code:`Message.get_full_command()` `#352 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:160 -msgid "" -"Fixed markdown util `#353 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:164 -msgid "2.9 (2021-06-08)" -msgstr "" - -#: ../../../HISTORY.rst:166 -msgid "Added full support of Telegram Bot API 4.9" -msgstr "" - -#: ../../../HISTORY.rst:167 -msgid "" -"Fixed user context at poll_answer update (`#322 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:168 -msgid "" -"Fix Chat.set_description (`#325 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:169 -msgid "" -"Add lazy session generator (`#326 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:170 -msgid "" -"Fix text decorations (`#315 " -"`_, `#316 " -"`_, `#328 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:171 -msgid "" -"Fix missing :code:`InlineQueryResultPhoto` :code:`parse_mode` field " -"(`#331 `_)" -msgstr "" - -#: ../../../HISTORY.rst:172 -msgid "" -"Fix fields from parent object in :code:`KeyboardButton` (`#344 " -"`_ fixes `#343 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:173 -msgid "" -"Add possibility to get bot id without calling :code:`get_me` (`#296 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:177 -msgid "2.8 (2021-04-26)" -msgstr "" - -#: ../../../HISTORY.rst:179 -msgid "Added full support of Bot API 4.8" -msgstr "" - -#: ../../../HISTORY.rst:180 -msgid "" -"Added :code:`Message.answer_dice` and :code:`Message.reply_dice` methods " -"(`#306 `_)" -msgstr "" - -#: ../../../HISTORY.rst:184 -msgid "2.7 (2021-04-07)" -msgstr "" - -#: ../../../HISTORY.rst:186 -msgid "" -"Added full support of Bot API 4.7 (`#294 " -"`_ `#289 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:187 -msgid "" -"Added default parse mode for send_animation method (`#293 " -"`_ `#292 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:188 -msgid "" -"Added new API exception when poll requested in public chats (`#270 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:189 -msgid "" -"Make correct User and Chat get_mention methods (`#277 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:190 -msgid "Small changes and other minor improvements" -msgstr "" - -#: ../../../HISTORY.rst:194 -msgid "2.6.1 (2021-01-25)" -msgstr "" - -#: ../../../HISTORY.rst:196 -msgid "" -"Fixed reply :code:`KeyboardButton` initializer with :code:`request_poll` " -"argument (`#266 `_)" -msgstr "" - -#: ../../../HISTORY.rst:197 -msgid "Added helper for poll types (:code:`aiogram.types.PollType`)" -msgstr "" - -#: ../../../HISTORY.rst:198 -msgid "" -"Changed behavior of Telegram_object :code:`.as_*` and :code:`.to_*` " -"methods. It will no more mutate the object. (`#247 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:202 -msgid "2.6 (2021-01-23)" -msgstr "" - -#: ../../../HISTORY.rst:204 -msgid "" -"Full support of Telegram Bot API v4.6 (Polls 2.0) `#265 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:205 -msgid "Aded new filter - IsContactSender (commit)" -msgstr "" - -#: ../../../HISTORY.rst:206 -msgid "" -"Fixed proxy extra dependencies version `#262 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:210 -msgid "2.5.3 (2021-01-05)" -msgstr "" - -#: ../../../HISTORY.rst:212 -msgid "" -"`#255 `_ Updated " -"CallbackData factory validity check. More correct for non-latin symbols" -msgstr "" - -#: ../../../HISTORY.rst:213 -msgid "" -"`#256 `_ Fixed " -":code:`renamed_argument` decorator error" -msgstr "" - -#: ../../../HISTORY.rst:214 -msgid "" -"`#257 `_ One more fix of " -"CommandStart filter" -msgstr "" - -#: ../../../HISTORY.rst:218 -msgid "2.5.2 (2021-01-01)" -msgstr "" - -#: ../../../HISTORY.rst:220 -msgid "Get back :code:`quote_html` and :code:`escape_md` functions" -msgstr "" - -#: ../../../HISTORY.rst:224 -msgid "2.5.1 (2021-01-01)" -msgstr "" - -#: ../../../HISTORY.rst:226 -msgid "Hot-fix of :code:`CommandStart` filter" -msgstr "" - -#: ../../../HISTORY.rst:230 -msgid "2.5 (2021-01-01)" -msgstr "" - -#: ../../../HISTORY.rst:232 -msgid "" -"Added full support of Telegram Bot API 4.5 (`#250 " -"`_, `#251 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:233 -msgid "" -"`#239 `_ Fixed " -":code:`check_token` method" -msgstr "" - -#: ../../../HISTORY.rst:234 -msgid "" -"`#238 `_, `#241 " -"`_: Added deep-linking " -"utils" -msgstr "" - -#: ../../../HISTORY.rst:235 -msgid "" -"`#248 `_ Fixed support of " -"aiohttp-socks" -msgstr "" - -#: ../../../HISTORY.rst:236 -msgid "Updated setup.py. No more use of internal pip API" -msgstr "" - -#: ../../../HISTORY.rst:237 -msgid "Updated links to documentations (https://docs.aiogram.dev)" -msgstr "" - -#: ../../../HISTORY.rst:238 -msgid "" -"Other small changes and minor improvements (`#223 " -"`_ and others...)" -msgstr "" - -#: ../../../HISTORY.rst:242 -msgid "2.4 (2021-10-29)" -msgstr "" - -#: ../../../HISTORY.rst:244 -msgid "Added Message.send_copy method (forward message without forwarding)" -msgstr "" - -#: ../../../HISTORY.rst:245 -msgid "" -"Safe close of aiohttp client session (no more exception when application " -"is shutdown)" -msgstr "" - -#: ../../../HISTORY.rst:246 -msgid "" -"No more \"adWanced\" words in project `#209 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:247 -msgid "" -"Arguments user and chat is renamed to user_id and chat_id in " -"Dispatcher.throttle method `#196 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:248 -msgid "" -"Fixed set_chat_permissions `#198 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:249 -msgid "" -"Fixed Dispatcher polling task does not process cancellation `#199 " -"`_, `#201 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:250 -msgid "" -"Fixed compatibility with latest asyncio version `#200 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:251 -msgid "" -"Disabled caching by default for lazy_gettext method of I18nMiddleware " -"`#203 `_" -msgstr "" - -#: ../../../HISTORY.rst:252 -msgid "" -"Fixed HTML user mention parser `#205 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:253 -msgid "" -"Added IsReplyFilter `#210 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:254 -msgid "" -"Fixed send_poll method arguments `#211 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:255 -msgid "" -"Added OrderedHelper `#215 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:256 -msgid "" -"Fix incorrect completion order. `#217 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:260 -msgid "2.3 (2021-08-16)" -msgstr "" - -#: ../../../HISTORY.rst:262 -msgid "Full support of Telegram Bot API 4.4" -msgstr "" - -#: ../../../HISTORY.rst:263 -msgid "Fixed `#143 `_" -msgstr "" - -#: ../../../HISTORY.rst:264 -msgid "" -"Added new filters from issue `#151 " -"`_: `#172 " -"`_, `#176 " -"`_, `#182 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:265 -msgid "" -"Added expire argument to RedisStorage2 and other storage fixes `#145 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:266 -msgid "" -"Fixed JSON and Pickle storages `#138 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:267 -msgid "" -"Implemented MongoStorage `#153 " -"`_ based on aiomongo (soon" -" motor will be also added)" -msgstr "" - -#: ../../../HISTORY.rst:268 -msgid "Improved tests" -msgstr "" - -#: ../../../HISTORY.rst:269 -msgid "Updated examples" -msgstr "" - -#: ../../../HISTORY.rst:270 -msgid "" -"Warning: Updated auth widget util. `#190 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:271 -msgid "" -"Implemented throttle decorator `#181 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:275 -msgid "2.2 (2021-06-09)" -msgstr "" - -#: ../../../HISTORY.rst:277 -msgid "Provides latest Telegram Bot API (4.3)" -msgstr "" - -#: ../../../HISTORY.rst:278 -msgid "Updated docs for filters" -msgstr "" - -#: ../../../HISTORY.rst:279 -msgid "" -"Added opportunity to use different bot tokens from single bot instance " -"(via context manager, `#100 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:280 -msgid "" -"IMPORTANT: Fixed Typo: :code:`data` -> :code:`bucket` in " -":code:`update_bucket` for RedisStorage2 (`#132 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:284 -msgid "2.1 (2021-04-18)" -msgstr "" - -#: ../../../HISTORY.rst:286 -msgid "Implemented all new features from Telegram Bot API 4.2" -msgstr "" - -#: ../../../HISTORY.rst:287 -msgid "" -":code:`is_member` and :code:`is_admin` methods of :code:`ChatMember` and " -":code:`ChatMemberStatus` was renamed to :code:`is_chat_member` and " -":code:`is_chat_admin`" -msgstr "" - -#: ../../../HISTORY.rst:288 -msgid "Remover func filter" -msgstr "" - -#: ../../../HISTORY.rst:289 -msgid "" -"Added some useful Message edit functions (:code:`Message.edit_caption`, " -":code:`Message.edit_media`, :code:`Message.edit_reply_markup`) (`#121 " -"`_, `#103 " -"`_, `#104 " -"`_, `#112 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:290 -msgid "" -"Added requests timeout for all methods (`#110 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:291 -msgid "" -"Added :code:`answer*` methods to :code:`Message` object (`#112 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:292 -msgid "Maked some improvements of :code:`CallbackData` factory" -msgstr "" - -#: ../../../HISTORY.rst:293 -msgid "Added deep-linking parameter filter to :code:`CommandStart` filter" -msgstr "" - -#: ../../../HISTORY.rst:294 -msgid "" -"Implemented opportunity to use DNS over socks (`#97 " -"`_ -> `#98 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:295 -msgid "" -"Implemented logging filter for extending LogRecord attributes (Will be " -"usefull with external logs collector utils like GrayLog, Kibana and etc.)" -msgstr "" - -#: ../../../HISTORY.rst:296 -msgid "Updated :code:`requirements.txt` and :code:`dev_requirements.txt` files" -msgstr "" - -#: ../../../HISTORY.rst:297 -msgid "Other small changes and minor improvements" -msgstr "" - -#: ../../../HISTORY.rst:301 -msgid "2.0.1 (2021-12-31)" -msgstr "" - -#: ../../../HISTORY.rst:303 -msgid "" -"Implemented CallbackData factory (`example " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:304 -msgid "" -"Implemented methods for answering to inline query from context and reply " -"with animation to the messages. `#85 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:305 -msgid "" -"Fixed installation from tar.gz `#84 " -"`_" -msgstr "" - -#: ../../../HISTORY.rst:306 -msgid "" -"More exceptions (:code:`ChatIdIsEmpty` and " -":code:`NotEnoughRightsToRestrict`)" -msgstr "" - -#: ../../../HISTORY.rst:310 -msgid "2.0 (2021-10-28)" -msgstr "" - -#: ../../../HISTORY.rst:312 -msgid "" -"This update will break backward compability with Python 3.6 and works " -"only with Python 3.7+: - contextvars (PEP-567); - New syntax for " -"annotations (PEP-563)." -msgstr "" - -#: ../../../HISTORY.rst:316 -msgid "" -"Changes: - Used contextvars instead of :code:`aiogram.utils.context`; - " -"Implemented filters factory; - Implemented new filters mechanism; - " -"Allowed to customize command prefix in CommandsFilter; - Implemented " -"mechanism of passing results from filters (as dicts) as kwargs in " -"handlers (like fixtures in pytest); - Implemented states group feature; -" -" Implemented FSM storage's proxy; - Changed files uploading mechanism; - " -"Implemented pipe for uploading files from URL; - Implemented I18n " -"Middleware; - Errors handlers now should accept only two arguments " -"(current update and exception); - Used :code:`aiohttp_socks` instead of " -":code:`aiosocksy` for Socks4/5 proxy; - types.ContentType was divided to " -":code:`types.ContentType` and :code:`types.ContentTypes`; - Allowed to " -"use rapidjson instead of ujson/json; - :code:`.current()` method in bot " -"and dispatcher objects was renamed to :code:`get_current()`;" -msgstr "" - -#: ../../../HISTORY.rst:333 -msgid "" -"Full changelog - You can read more details about this release in " -"migration FAQ: " -"``_" -msgstr "" - -#: ../../../HISTORY.rst:338 -msgid "1.4 (2021-08-03)" -msgstr "" - -#: ../../../HISTORY.rst:340 -msgid "Bot API 4.0 (`#57 `_)" -msgstr "" - -#: ../../../HISTORY.rst:344 -msgid "1.3.3 (2021-07-16)" -msgstr "" - -#: ../../../HISTORY.rst:346 -msgid "Fixed markup-entities parsing;" -msgstr "" - -#: ../../../HISTORY.rst:347 -msgid "Added more API exceptions;" -msgstr "" - -#: ../../../HISTORY.rst:348 -msgid "Now InlineQueryResultLocation has live_period;" -msgstr "" - -#: ../../../HISTORY.rst:349 -msgid "Added more message content types;" -msgstr "" - -#: ../../../HISTORY.rst:350 -msgid "Other small changes and minor improvements." -msgstr "" - -#: ../../../HISTORY.rst:354 -msgid "1.3.2 (2021-05-27)" -msgstr "" - -#: ../../../HISTORY.rst:356 -msgid "Fixed crashing of polling process. (i think)" -msgstr "" - -#: ../../../HISTORY.rst:357 -msgid "Added parse_mode field into input query results according to Bot API Docs." -msgstr "" - -#: ../../../HISTORY.rst:358 -msgid "" -"Added new methods for Chat object. (`#42 " -"`_, `#43 " -"`_)" -msgstr "" - -#: ../../../HISTORY.rst:359 -msgid "**Warning**: disabled connections limit for bot aiohttp session." -msgstr "" - -#: ../../../HISTORY.rst:360 -msgid "**Warning**: Destroyed \"temp sessions\" mechanism." -msgstr "" - -#: ../../../HISTORY.rst:361 -msgid "Added new error types." -msgstr "" - -#: ../../../HISTORY.rst:362 -msgid "Refactored detection of error type." -msgstr "" - -#: ../../../HISTORY.rst:363 -msgid "Small fixes of executor util." -msgstr "" - -#: ../../../HISTORY.rst:364 -msgid "Fixed RethinkDBStorage" -msgstr "" - -#: ../../../HISTORY.rst:367 -msgid "1.3.1 (2018-05-27)" -msgstr "" - -#: ../../../HISTORY.rst:371 -msgid "1.3 (2021-04-22)" -msgstr "" - -#: ../../../HISTORY.rst:373 -msgid "Allow to use Socks5 proxy (need manually install :code:`aiosocksy`)." -msgstr "" - -#: ../../../HISTORY.rst:374 -msgid "Refactored :code:`aiogram.utils.executor` module." -msgstr "" - -#: ../../../HISTORY.rst:375 -msgid "**[Warning]** Updated requirements list." -msgstr "" - -#: ../../../HISTORY.rst:379 -msgid "1.2.3 (2018-04-14)" -msgstr "" - -#: ../../../HISTORY.rst:381 -msgid "Fixed API errors detection" -msgstr "" - -#: ../../../HISTORY.rst:382 -msgid "Fixed compability of :code:`setup.py` with pip 10.0.0" -msgstr "" - -#: ../../../HISTORY.rst:386 -msgid "1.2.2 (2018-04-08)" -msgstr "" - -#: ../../../HISTORY.rst:388 -msgid "Added more error types." -msgstr "" - -#: ../../../HISTORY.rst:389 -msgid "" -"Implemented method :code:`InputFile.from_url(url: str)` for downloading " -"files." -msgstr "" - -#: ../../../HISTORY.rst:390 -msgid "Implemented big part of API method tests." -msgstr "" - -#: ../../../HISTORY.rst:391 -msgid "Other small changes and mminor improvements." -msgstr "" - -#: ../../../HISTORY.rst:395 -msgid "1.2.1 (2018-03-25)" -msgstr "" - -#: ../../../HISTORY.rst:397 -msgid "" -"Fixed handling Venue's [`#27 " -"`_, `#26 " -"`_]" -msgstr "" - -#: ../../../HISTORY.rst:398 -msgid "" -"Added parse_mode to all medias (Bot API 3.6 support) [`#23 " -"`_]" -msgstr "" - -#: ../../../HISTORY.rst:399 -msgid "" -"Now regexp filter can be used with callback query data [`#19 " -"`_]" -msgstr "" - -#: ../../../HISTORY.rst:400 -msgid "" -"Improvements in :code:`InlineKeyboardMarkup` & " -":code:`ReplyKeyboardMarkup` objects [`#21 " -"`_]" -msgstr "" - -#: ../../../HISTORY.rst:401 -msgid "Other bug & typo fixes and minor improvements." -msgstr "" - -#: ../../../HISTORY.rst:405 -msgid "1.2 (2018-02-23)" -msgstr "" - -#: ../../../HISTORY.rst:407 -msgid "Full provide Telegram Bot API 3.6" -msgstr "" - -#: ../../../HISTORY.rst:408 -msgid "" -"Fixed critical error: :code:`Fatal Python error: PyImport_GetModuleDict: " -"no module dictionary!`" -msgstr "" - -#: ../../../HISTORY.rst:409 -msgid "Implemented connection pool in RethinkDB driver" -msgstr "" - -#: ../../../HISTORY.rst:410 ../../../HISTORY.rst:418 -msgid "Typo fixes of documentstion" -msgstr "" - -#: ../../../HISTORY.rst:411 ../../../HISTORY.rst:464 -msgid "Other bug fixes and minor improvements." -msgstr "" - -#: ../../../HISTORY.rst:415 -msgid "1.1 (2018-01-27)" -msgstr "" - -#: ../../../HISTORY.rst:417 -msgid "" -"Added more methods for data types (like " -":code:`message.reply_sticker(...)` or :code:`file.download(...)`" -msgstr "" - -#: ../../../HISTORY.rst:419 -msgid "" -"Allow to set default parse mode for messages (:code:`Bot( ... , " -"parse_mode='HTML')`)" -msgstr "" - -#: ../../../HISTORY.rst:420 -msgid "" -"Allowed to cancel event from the :code:`Middleware.on_pre_process_`" -msgstr "" - -#: ../../../HISTORY.rst:421 -msgid "Fixed sending files with correct names." -msgstr "" - -#: ../../../HISTORY.rst:422 -msgid "Fixed MediaGroup" -msgstr "" - -#: ../../../HISTORY.rst:423 -msgid "" -"Added RethinkDB storage for FSM " -"(:code:`aiogram.contrib.fsm_storage.rethinkdb`)" -msgstr "" - -#: ../../../HISTORY.rst:427 -msgid "1.0.4 (2018-01-10)" -msgstr "" - -#: ../../../HISTORY.rst:431 -msgid "1.0.3 (2018-01-07)" -msgstr "" - -#: ../../../HISTORY.rst:433 -msgid "Added middlewares mechanism." -msgstr "" - -#: ../../../HISTORY.rst:434 -msgid "Added example for middlewares and throttling manager." -msgstr "" - -#: ../../../HISTORY.rst:435 -msgid "" -"Added logging middleware " -"(:code:`aiogram.contrib.middlewares.logging.LoggingMiddleware`)" -msgstr "" - -#: ../../../HISTORY.rst:436 -msgid "Fixed handling errors in async tasks (marked as 'async_task')" -msgstr "" - -#: ../../../HISTORY.rst:437 -msgid "Small fixes and other minor improvements." -msgstr "" - -#: ../../../HISTORY.rst:441 -msgid "1.0.2 (2017-11-29)" -msgstr "" - -#: ../../../HISTORY.rst:445 -msgid "1.0.1 (2017-11-21)" -msgstr "" - -#: ../../../HISTORY.rst:447 -msgid "Implemented :code:`types.InputFile` for more easy sending local files" -msgstr "" - -#: ../../../HISTORY.rst:448 -msgid "" -"**Danger!** Fixed typo in word pooling. Now whatever all methods with " -"that word marked as deprecated and original methods is renamed to " -"polling. Check it in you'r code before updating!" -msgstr "" - -#: ../../../HISTORY.rst:449 -msgid "Fixed helper for chat actions (:code:`types.ChatActions`)" -msgstr "" - -#: ../../../HISTORY.rst:450 -msgid "" -"Added `example " -"`_" -" for media group." -msgstr "" - -#: ../../../HISTORY.rst:454 -msgid "1.0 (2017-11-19)" -msgstr "" - -#: ../../../HISTORY.rst:456 -msgid "Remaked data types serialozation/deserialization mechanism (Speed up)." -msgstr "" - -#: ../../../HISTORY.rst:457 -msgid "Fully rewrited all Telegram data types." -msgstr "" - -#: ../../../HISTORY.rst:458 -msgid "Bot object was fully rewritted (regenerated)." -msgstr "" - -#: ../../../HISTORY.rst:459 -msgid "Full provide Telegram Bot API 3.4+ (with sendMediaGroup)" -msgstr "" - -#: ../../../HISTORY.rst:460 -msgid "Warning: Now :code:`BaseStorage.close()` is awaitable! (FSM)" -msgstr "" - -#: ../../../HISTORY.rst:461 -msgid "Fixed compability with uvloop." -msgstr "" - -#: ../../../HISTORY.rst:462 -msgid "More employments for :code:`aiogram.utils.context`." -msgstr "" - -#: ../../../HISTORY.rst:463 -msgid "Allowed to disable :code:`ujson`." -msgstr "" - -#: ../../../HISTORY.rst:465 -msgid "Migrated from Bitbucket to Github." -msgstr "" - -#: ../../../HISTORY.rst:469 -msgid "0.4.1 (2017-08-03)" -msgstr "" - -#: ../../../HISTORY.rst:473 -msgid "0.4 (2017-08-05)" -msgstr "" - -#: ../../../HISTORY.rst:477 -msgid "0.3.4 (2017-08-04)" -msgstr "" - -#: ../../../HISTORY.rst:481 -msgid "0.3.3 (2017-07-05)" -msgstr "" - -#: ../../../HISTORY.rst:485 -msgid "0.3.2 (2017-07-04)" -msgstr "" - -#: ../../../HISTORY.rst:489 -msgid "0.3.1 (2017-07-04)" -msgstr "" - -#: ../../../HISTORY.rst:493 -msgid "0.2b1 (2017-06-00)" -msgstr "" - -#: ../../../HISTORY.rst:497 -msgid "0.1 (2017-06-03)" -msgstr "" - -#~ msgid "\\ |release| [UNRELEASED DRAFT] (2023-01-07)" -#~ msgstr "" - -#~ msgid "" -#~ ":class:`aiogram.enums.chat_action.ChatActions`, " -#~ ":class:`aiogram.enums.chat_member_status.ChatMemberStatus`, " -#~ ":class:`aiogram.enums.chat_type.ChatType`, " -#~ ":class:`aiogram.enums.content_type.ContentType`, " -#~ ":class:`aiogram.enums.dice_emoji.DiceEmoji`, " -#~ ":class:`aiogram.enums.inline_query_result_type.InlineQueryResultType`," -#~ " :class:`aiogram.enums.input_media_type.InputMediaType`, " -#~ ":class:`aiogram.enums.mask_position_point.MaskPositionPoint`, " -#~ ":class:`aiogram.enums.menu_button_type.MenuButtonType`, " -#~ ":class:`aiogram.enums.message_entity_type.MessageEntityType`, " -#~ ":class:`aiogram.enums.parse_mode.ParseMode`, " -#~ ":class:`aiogram.enums.poll_type.PollType`, " -#~ ":class:`aiogram.enums.sticker_type.StickerType`, " -#~ ":class:`aiogram.enums.topic_icon_color.TopicIconColor`, " -#~ ":class:`aiogram.enums.update_type.UpdateType`," -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/contributing.po b/docs/locale/en/LC_MESSAGES/contributing.po deleted file mode 100644 index 2a7fe459..00000000 --- a/docs/locale/en/LC_MESSAGES/contributing.po +++ /dev/null @@ -1,322 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2023, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2023. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../contributing.rst:3 -msgid "Contributing" -msgstr "" - -#: ../../contributing.rst:5 -msgid "You're welcome to contribute to aiogram!" -msgstr "" - -#: ../../contributing.rst:7 -msgid "" -"*aiogram* is an open-source project, and anyone can contribute to it in " -"any possible way" -msgstr "" - -#: ../../contributing.rst:11 -msgid "Developing" -msgstr "" - -#: ../../contributing.rst:13 -msgid "" -"Before making any changes in the framework code, it is necessary to fork " -"the project and clone the project to your PC and know how to do a pull-" -"request." -msgstr "" - -#: ../../contributing.rst:16 -msgid "" -"How to work with pull-request you can read in the `GitHub docs " -"`_" -msgstr "" - -#: ../../contributing.rst:18 -msgid "" -"Also in due to this project is written in Python, you will need Python to" -" be installed (is recommended to use latest Python versions, but any " -"version starting from 3.8 can be used)" -msgstr "" - -#: ../../contributing.rst:23 -msgid "Use virtualenv" -msgstr "" - -#: ../../contributing.rst:25 -msgid "" -"You can create a virtual environment in a directory using :code:`venv` " -"module (it should be pre-installed by default):" -msgstr "" - -#: ../../contributing.rst:31 -msgid "" -"This action will create a :code:`.venv` directory with the Python " -"binaries and then you will be able to install packages into that isolated" -" environment." -msgstr "" - -#: ../../contributing.rst:36 -msgid "Activate the environment" -msgstr "" - -#: ../../contributing.rst:38 -msgid "Linux/ macOS:" -msgstr "" - -#: ../../contributing.rst:44 -msgid "Windows PoweShell" -msgstr "" - -#: ../../contributing.rst:50 -msgid "" -"To check it worked, use described command, it should show the :code:`pip`" -" location inside the isolated environment" -msgstr "" - -#: ../../contributing.rst:53 -msgid "Linux, macOS:" -msgstr "" - -#: ../../contributing.rst:59 -msgid "Windows PowerShell" -msgstr "" - -#: ../../contributing.rst:65 -msgid "" -"Also make you shure you have the latest pip version in your virtual " -"environment to avoid errors on next steps:" -msgstr "" - -#: ../../contributing.rst:74 -msgid "Setup project" -msgstr "" - -#: ../../contributing.rst:76 -msgid "" -"After activating the environment install `aiogram` from sources and their" -" dependencies:" -msgstr "" - -#: ../../contributing.rst:82 -msgid "" -"It will install :code:`aiogram` in editable mode into your virtual " -"environment and all dependencies." -msgstr "" - -#: ../../contributing.rst:85 -msgid "Making changes in code" -msgstr "" - -#: ../../contributing.rst:87 -msgid "" -"At this point you can make any changes in the code that you want, it can " -"be any fixes, implementing new features or experimenting." -msgstr "" - -#: ../../contributing.rst:92 -msgid "Format the code (code-style)" -msgstr "" - -#: ../../contributing.rst:94 -msgid "" -"Note that this project is Black-formatted, so you should follow that " -"code-style, too be sure You're correctly doing this let's reformat the " -"code automatically:" -msgstr "" - -#: ../../contributing.rst:104 -msgid "Run tests" -msgstr "" - -#: ../../contributing.rst:106 -msgid "All changes should be tested:" -msgstr "" - -#: ../../contributing.rst:112 -msgid "" -"Also if you are doing something with Redis-storage, you will need to test" -" everything works with Redis:" -msgstr "" - -#: ../../contributing.rst:119 -msgid "Docs" -msgstr "" - -#: ../../contributing.rst:121 -msgid "" -"We are using `Sphinx` to render docs in different languages, all sources " -"located in `docs` directory, you can change the sources and to test it " -"you can start live-preview server and look what you are doing:" -msgstr "" - -#: ../../contributing.rst:130 -msgid "Docs translations" -msgstr "" - -#: ../../contributing.rst:132 -msgid "" -"Translation of the documentation is very necessary and cannot be done " -"without the help of the community from all over the world, so you are " -"welcome to translate the documentation into different languages." -msgstr "" - -#: ../../contributing.rst:136 -msgid "Before start, let's up to date all texts:" -msgstr "" - -#: ../../contributing.rst:144 -msgid "" -"Change the :code:`` in example below to the target " -"language code, after that you can modify texts inside " -":code:`docs/locale//LC_MESSAGES` as :code:`*.po` files by " -"using any text-editor or specialized utilites for GNU Gettext, for " -"example via `poedit `_." -msgstr "" - -#: ../../contributing.rst:149 -msgid "To view results:" -msgstr "" - -#: ../../contributing.rst:157 -msgid "Describe changes" -msgstr "" - -#: ../../contributing.rst:159 -msgid "" -"Describe your changes in one or more sentences so that bot developers " -"know what's changed in their favorite framework - create " -"`..rst` file and write the description." -msgstr "" - -#: ../../contributing.rst:162 -msgid "" -":code:`` is Issue or Pull-request number, after release link to " -"this issue will be published to the *Changelog* page." -msgstr "" - -#: ../../contributing.rst:165 -msgid ":code:`` is a changes category marker, it can be one of:" -msgstr "" - -#: ../../contributing.rst:167 -msgid ":code:`feature` - when you are implementing new feature" -msgstr "" - -#: ../../contributing.rst:168 -msgid ":code:`bugfix` - when you fix a bug" -msgstr "" - -#: ../../contributing.rst:169 -msgid ":code:`doc` - when you improve the docs" -msgstr "" - -#: ../../contributing.rst:170 -msgid ":code:`removal` - when you remove something from the framework" -msgstr "" - -#: ../../contributing.rst:171 -msgid "" -":code:`misc` - when changed something inside the Core or project " -"configuration" -msgstr "" - -#: ../../contributing.rst:173 -msgid "" -"If you have troubles with changing category feel free to ask Core-" -"contributors to help with choosing it." -msgstr "" - -#: ../../contributing.rst:176 -msgid "Complete" -msgstr "" - -#: ../../contributing.rst:178 -msgid "" -"After you have made all your changes, publish them to the repository and " -"create a pull request as mentioned at the beginning of the article and " -"wait for a review of these changes." -msgstr "" - -#: ../../contributing.rst:183 -msgid "Star on GitHub" -msgstr "" - -#: ../../contributing.rst:185 -msgid "" -"You can \"star\" repository on GitHub - " -"https://github.com/aiogram/aiogram (click the star button at the top " -"right)" -msgstr "" - -#: ../../contributing.rst:187 -msgid "" -"Adding stars makes it easier for other people to find this project and " -"understand how useful it is." -msgstr "" - -#: ../../contributing.rst:190 -msgid "Guides" -msgstr "" - -#: ../../contributing.rst:192 -msgid "" -"You can write guides how to develop Bots on top of aiogram and publish it" -" into YouTube, Medium, GitHub Books, any Courses platform or any other " -"platform that you know." -msgstr "" - -#: ../../contributing.rst:195 -msgid "" -"This will help more people learn about the framework and learn how to use" -" it" -msgstr "" - -#: ../../contributing.rst:199 -msgid "Take answers" -msgstr "" - -#: ../../contributing.rst:201 -msgid "" -"The developers is always asks for any question in our chats or any other " -"platforms like GitHub Discussions, StackOverflow and others, feel free to" -" answer to this questions." -msgstr "" - -#: ../../contributing.rst:205 -msgid "Funding" -msgstr "" - -#: ../../contributing.rst:207 -msgid "" -"The development of the project is free and not financed by commercial " -"organizations, it is my personal initiative (`@JRootJunior " -"`_) and I am engaged in the development of the " -"project in my free time." -msgstr "" - -#: ../../contributing.rst:211 -msgid "" -"So, if you want to financially support the project, or, for example, give" -" me a pizza or a beer, you can do it on `OpenCollective " -"`_ or `Patreon " -"`_." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/base.po b/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/base.po deleted file mode 100644 index 0237e667..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/base.po +++ /dev/null @@ -1,56 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/class_based_handlers/base.rst:5 -msgid "BaseHandler" -msgstr "" - -#: ../../dispatcher/class_based_handlers/base.rst:7 -msgid "" -"Base handler is generic abstract class and should be used in all other " -"class-based handlers." -msgstr "" - -#: ../../dispatcher/class_based_handlers/base.rst:9 -msgid "Import: :code:`from aiogram.handler import BaseHandler`" -msgstr "" - -#: ../../dispatcher/class_based_handlers/base.rst:11 -msgid "" -"By default you will need to override only method :code:`async def " -"handle(self) -> Any: ...`" -msgstr "" - -#: ../../dispatcher/class_based_handlers/base.rst:13 -msgid "" -"This class is also have an default initializer and you don't need to " -"change it. Initializer accepts current event and all contextual data and " -"which can be accessed from the handler through attributes: :code:`event: " -"TelegramEvent` and :code:`data: Dict[Any, str]`" -msgstr "" - -#: ../../dispatcher/class_based_handlers/base.rst:17 -msgid "" -"If instance of the bot is specified in context data or current context it" -" can be accessed through *bot* class attribute." -msgstr "" - -#: ../../dispatcher/class_based_handlers/base.rst:20 -msgid "Example" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/callback_query.po b/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/callback_query.po deleted file mode 100644 index d7d31d0c..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/callback_query.po +++ /dev/null @@ -1,42 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/class_based_handlers/callback_query.rst:3 -msgid "CallbackQueryHandler" -msgstr "" - -#: aiogram.handlers.callback_query.CallbackQueryHandler:1 of -msgid "There is base class for callback query handlers." -msgstr "" - -#: aiogram.handlers.callback_query.CallbackQueryHandler:13 of -msgid "Example:" -msgstr "" - -#: aiogram.handlers.callback_query.CallbackQueryHandler.from_user:1 of -msgid "Is alias for `event.from_user`" -msgstr "" - -#: aiogram.handlers.callback_query.CallbackQueryHandler.message:1 of -msgid "Is alias for `event.message`" -msgstr "" - -#: aiogram.handlers.callback_query.CallbackQueryHandler.callback_data:1 of -msgid "Is alias for `event.data`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/chat_member.po b/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/chat_member.po deleted file mode 100644 index 19d4b9b0..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/chat_member.po +++ /dev/null @@ -1,44 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/class_based_handlers/chat_member.rst:3 -msgid "ChatMemberHandler" -msgstr "" - -#: ../../dispatcher/class_based_handlers/chat_member.rst:5 -msgid "There is base class for chat member updated events." -msgstr "" - -#: ../../dispatcher/class_based_handlers/chat_member.rst:8 -msgid "Simple usage" -msgstr "" - -#: ../../dispatcher/class_based_handlers/chat_member.rst:23 -msgid "Extension" -msgstr "" - -#: ../../dispatcher/class_based_handlers/chat_member.rst:25 -msgid "" -"This base handler is subclass of :ref:`BaseHandler ` " -"with some extensions:" -msgstr "" - -#: ../../dispatcher/class_based_handlers/chat_member.rst:27 -msgid ":code:`self.chat` is alias for :code:`self.event.chat`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/chosen_inline_result.po b/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/chosen_inline_result.po deleted file mode 100644 index 558adf89..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/chosen_inline_result.po +++ /dev/null @@ -1,48 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/class_based_handlers/chosen_inline_result.rst:3 -msgid "ChosenInlineResultHandler" -msgstr "" - -#: ../../dispatcher/class_based_handlers/chosen_inline_result.rst:5 -msgid "There is base class for chosen inline result handlers." -msgstr "" - -#: ../../dispatcher/class_based_handlers/chosen_inline_result.rst:8 -msgid "Simple usage" -msgstr "" - -#: ../../dispatcher/class_based_handlers/chosen_inline_result.rst:22 -msgid "Extension" -msgstr "" - -#: ../../dispatcher/class_based_handlers/chosen_inline_result.rst:24 -msgid "" -"This base handler is subclass of :ref:`BaseHandler ` " -"with some extensions:" -msgstr "" - -#: ../../dispatcher/class_based_handlers/chosen_inline_result.rst:26 -msgid ":code:`self.chat` is alias for :code:`self.event.chat`" -msgstr "" - -#: ../../dispatcher/class_based_handlers/chosen_inline_result.rst:27 -msgid ":code:`self.from_user` is alias for :code:`self.event.from_user`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/error.po b/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/error.po deleted file mode 100644 index 0d6e9328..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/error.po +++ /dev/null @@ -1,50 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/class_based_handlers/error.rst:3 -msgid "ErrorHandler" -msgstr "" - -#: ../../dispatcher/class_based_handlers/error.rst:5 -msgid "There is base class for error handlers." -msgstr "" - -#: ../../dispatcher/class_based_handlers/error.rst:8 -msgid "Simple usage" -msgstr "" - -#: ../../dispatcher/class_based_handlers/error.rst:27 -msgid "Extension" -msgstr "" - -#: ../../dispatcher/class_based_handlers/error.rst:29 -msgid "" -"This base handler is subclass of :ref:`BaseHandler ` " -"with some extensions:" -msgstr "" - -#: ../../dispatcher/class_based_handlers/error.rst:31 -msgid "" -":code:`self.exception_name` is alias for " -":code:`self.event.__class__.__name__`" -msgstr "" - -#: ../../dispatcher/class_based_handlers/error.rst:32 -msgid ":code:`self.exception_message` is alias for :code:`str(self.event)`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/index.po b/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/index.po deleted file mode 100644 index 780ca896..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/index.po +++ /dev/null @@ -1,42 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/class_based_handlers/index.rst:3 -msgid "Class based handlers" -msgstr "" - -#: ../../dispatcher/class_based_handlers/index.rst:5 -msgid "" -"A handler is a async callable which takes a event with contextual data " -"and returns a response." -msgstr "" - -#: ../../dispatcher/class_based_handlers/index.rst:7 -msgid "" -"In **aiogram** it can be more than just an async function, these allow " -"you to use classes which can be used as Telegram event handlers to " -"structure your event handlers and reuse code by harnessing inheritance " -"and mixins." -msgstr "" - -#: ../../dispatcher/class_based_handlers/index.rst:10 -msgid "" -"There are some base class based handlers what you need to use in your own" -" handlers:" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/inline_query.po b/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/inline_query.po deleted file mode 100644 index b8a5fdef..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/inline_query.po +++ /dev/null @@ -1,48 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/class_based_handlers/inline_query.rst:3 -msgid "InlineQueryHandler" -msgstr "" - -#: ../../dispatcher/class_based_handlers/inline_query.rst:5 -msgid "There is base class for inline query handlers." -msgstr "" - -#: ../../dispatcher/class_based_handlers/inline_query.rst:8 -msgid "Simple usage" -msgstr "" - -#: ../../dispatcher/class_based_handlers/inline_query.rst:22 -msgid "Extension" -msgstr "" - -#: ../../dispatcher/class_based_handlers/inline_query.rst:24 -msgid "" -"This base handler is subclass of :ref:`BaseHandler ` " -"with some extensions:" -msgstr "" - -#: ../../dispatcher/class_based_handlers/inline_query.rst:26 -msgid ":code:`self.chat` is alias for :code:`self.event.chat`" -msgstr "" - -#: ../../dispatcher/class_based_handlers/inline_query.rst:27 -msgid ":code:`self.query` is alias for :code:`self.event.query`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/message.po b/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/message.po deleted file mode 100644 index 247cd4de..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/message.po +++ /dev/null @@ -1,48 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/class_based_handlers/message.rst:3 -msgid "MessageHandler" -msgstr "" - -#: ../../dispatcher/class_based_handlers/message.rst:5 -msgid "There is base class for message handlers." -msgstr "" - -#: ../../dispatcher/class_based_handlers/message.rst:8 -msgid "Simple usage" -msgstr "" - -#: ../../dispatcher/class_based_handlers/message.rst:22 -msgid "Extension" -msgstr "" - -#: ../../dispatcher/class_based_handlers/message.rst:24 -msgid "" -"This base handler is subclass of [BaseHandler](basics.md#basehandler) " -"with some extensions:" -msgstr "" - -#: ../../dispatcher/class_based_handlers/message.rst:26 -msgid ":code:`self.chat` is alias for :code:`self.event.chat`" -msgstr "" - -#: ../../dispatcher/class_based_handlers/message.rst:27 -msgid ":code:`self.from_user` is alias for :code:`self.event.from_user`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/poll.po b/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/poll.po deleted file mode 100644 index c8717a1d..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/poll.po +++ /dev/null @@ -1,48 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/class_based_handlers/poll.rst:3 -msgid "PollHandler" -msgstr "" - -#: ../../dispatcher/class_based_handlers/poll.rst:5 -msgid "There is base class for poll handlers." -msgstr "" - -#: ../../dispatcher/class_based_handlers/poll.rst:8 -msgid "Simple usage" -msgstr "" - -#: ../../dispatcher/class_based_handlers/poll.rst:21 -msgid "Extension" -msgstr "" - -#: ../../dispatcher/class_based_handlers/poll.rst:23 -msgid "" -"This base handler is subclass of :ref:`BaseHandler ` " -"with some extensions:" -msgstr "" - -#: ../../dispatcher/class_based_handlers/poll.rst:25 -msgid ":code:`self.question` is alias for :code:`self.event.question`" -msgstr "" - -#: ../../dispatcher/class_based_handlers/poll.rst:26 -msgid ":code:`self.options` is alias for :code:`self.event.options`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/pre_checkout_query.po b/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/pre_checkout_query.po deleted file mode 100644 index 2f868119..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/pre_checkout_query.po +++ /dev/null @@ -1,44 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/class_based_handlers/pre_checkout_query.rst:3 -msgid "PreCheckoutQueryHandler" -msgstr "" - -#: ../../dispatcher/class_based_handlers/pre_checkout_query.rst:5 -msgid "There is base class for callback query handlers." -msgstr "" - -#: ../../dispatcher/class_based_handlers/pre_checkout_query.rst:8 -msgid "Simple usage" -msgstr "" - -#: ../../dispatcher/class_based_handlers/pre_checkout_query.rst:21 -msgid "Extension" -msgstr "" - -#: ../../dispatcher/class_based_handlers/pre_checkout_query.rst:23 -msgid "" -"This base handler is subclass of :ref:`BaseHandler ` " -"with some extensions:" -msgstr "" - -#: ../../dispatcher/class_based_handlers/pre_checkout_query.rst:25 -msgid ":code:`self.from_user` is alias for :code:`self.event.from_user`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/shipping_query.po b/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/shipping_query.po deleted file mode 100644 index ccc60897..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/class_based_handlers/shipping_query.po +++ /dev/null @@ -1,44 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/class_based_handlers/shipping_query.rst:3 -msgid "ShippingQueryHandler" -msgstr "" - -#: ../../dispatcher/class_based_handlers/shipping_query.rst:5 -msgid "There is base class for callback query handlers." -msgstr "" - -#: ../../dispatcher/class_based_handlers/shipping_query.rst:8 -msgid "Simple usage" -msgstr "" - -#: ../../dispatcher/class_based_handlers/shipping_query.rst:21 -msgid "Extension" -msgstr "" - -#: ../../dispatcher/class_based_handlers/shipping_query.rst:23 -msgid "" -"This base handler is subclass of :ref:`BaseHandler ` " -"with some extensions:" -msgstr "" - -#: ../../dispatcher/class_based_handlers/shipping_query.rst:25 -msgid ":code:`self.from_user` is alias for :code:`self.event.from_user`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/dispatcher.po b/docs/locale/en/LC_MESSAGES/dispatcher/dispatcher.po deleted file mode 100644 index d21aea70..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/dispatcher.po +++ /dev/null @@ -1,170 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../dispatcher/dispatcher.rst:3 -msgid "Dispatcher" -msgstr "" - -#: ../../dispatcher/dispatcher.rst:5 -msgid "" -"Dispatcher is root :obj:`Router` and in code Dispatcher can be used " -"directly for routing updates or attach another routers into dispatcher." -msgstr "" - -#: ../../dispatcher/dispatcher.rst:7 -msgid "" -"Here is only listed base information about Dispatcher. All about writing " -"handlers, filters and etc. you can found in next pages:" -msgstr "" - -#: ../../dispatcher/dispatcher.rst:9 -msgid "`Router `__" -msgstr "" - -#: ../../dispatcher/dispatcher.rst:10 -msgid "`Observer `__" -msgstr "" - -#: aiogram.dispatcher.dispatcher.Dispatcher:1 -#: aiogram.dispatcher.dispatcher.Dispatcher.__init__:1 of -msgid "Root router" -msgstr "" - -#: aiogram.dispatcher.dispatcher.Dispatcher.__init__ -#: aiogram.dispatcher.dispatcher.Dispatcher.feed_raw_update -#: aiogram.dispatcher.dispatcher.Dispatcher.feed_update -#: aiogram.dispatcher.dispatcher.Dispatcher.run_polling -#: aiogram.dispatcher.dispatcher.Dispatcher.start_polling of -msgid "Parameters" -msgstr "" - -#: aiogram.dispatcher.dispatcher.Dispatcher.__init__:3 of -msgid "Storage for FSM" -msgstr "" - -#: aiogram.dispatcher.dispatcher.Dispatcher.__init__:4 of -msgid "FSM strategy" -msgstr "" - -#: aiogram.dispatcher.dispatcher.Dispatcher.__init__:5 of -msgid "Events isolation" -msgstr "" - -#: aiogram.dispatcher.dispatcher.Dispatcher.__init__:6 of -msgid "" -"Disable FSM, note that if you disable FSM then you should not use storage" -" and events isolation" -msgstr "" - -#: aiogram.dispatcher.dispatcher.Dispatcher.__init__:8 of -msgid "Other arguments, will be passed as keyword arguments to handlers" -msgstr "" - -#: aiogram.dispatcher.dispatcher.Dispatcher.feed_raw_update:1 of -msgid "" -"Main entry point for incoming updates with automatic Dict->Update " -"serializer" -msgstr "" - -#: aiogram.dispatcher.dispatcher.Dispatcher.feed_update:1 of -msgid "" -"Main entry point for incoming updates Response of this method can be used" -" as Webhook response" -msgstr "" - -#: aiogram.dispatcher.dispatcher.Dispatcher.run_polling:1 of -msgid "Run many bots with polling" -msgstr "" - -#: aiogram.dispatcher.dispatcher.Dispatcher.run_polling:3 -#: aiogram.dispatcher.dispatcher.Dispatcher.start_polling:3 of -msgid "Bot instances (one or mre)" -msgstr "" - -#: aiogram.dispatcher.dispatcher.Dispatcher.run_polling:4 -#: aiogram.dispatcher.dispatcher.Dispatcher.start_polling:4 of -msgid "Long-polling wait time" -msgstr "" - -#: aiogram.dispatcher.dispatcher.Dispatcher.run_polling:5 -#: aiogram.dispatcher.dispatcher.Dispatcher.start_polling:5 of -msgid "Run task for each event and no wait result" -msgstr "" - -#: aiogram.dispatcher.dispatcher.Dispatcher.run_polling:6 -#: aiogram.dispatcher.dispatcher.Dispatcher.start_polling:6 of -msgid "backoff-retry config" -msgstr "" - -#: aiogram.dispatcher.dispatcher.Dispatcher.run_polling:7 -#: aiogram.dispatcher.dispatcher.Dispatcher.start_polling:7 of -msgid "List of the update types you want your bot to receive" -msgstr "" - -#: aiogram.dispatcher.dispatcher.Dispatcher.run_polling:8 -#: aiogram.dispatcher.dispatcher.Dispatcher.start_polling:8 of -msgid "handle signals (SIGINT/SIGTERM)" -msgstr "" - -#: aiogram.dispatcher.dispatcher.Dispatcher.run_polling:9 -#: aiogram.dispatcher.dispatcher.Dispatcher.start_polling:9 of -msgid "close bot sessions on shutdown" -msgstr "" - -#: aiogram.dispatcher.dispatcher.Dispatcher.run_polling:10 -#: aiogram.dispatcher.dispatcher.Dispatcher.start_polling:10 of -msgid "contextual data" -msgstr "" - -#: aiogram.dispatcher.dispatcher.Dispatcher.run_polling -#: aiogram.dispatcher.dispatcher.Dispatcher.start_polling of -msgid "Returns" -msgstr "" - -#: aiogram.dispatcher.dispatcher.Dispatcher.start_polling:1 of -msgid "Polling runner" -msgstr "" - -#: ../../dispatcher/dispatcher.rst:18 -msgid "Simple usage" -msgstr "" - -#: ../../dispatcher/dispatcher.rst:20 ../../dispatcher/dispatcher.rst:33 -msgid "Example:" -msgstr "" - -#: ../../dispatcher/dispatcher.rst:31 -msgid "Including routers" -msgstr "" - -#: ../../dispatcher/dispatcher.rst:43 -msgid "Handling updates" -msgstr "" - -#: ../../dispatcher/dispatcher.rst:45 -msgid "" -"All updates can be propagated to the dispatcher by " -":obj:`Dispatcher.feed_update(bot=..., update=...)` method:" -msgstr "" - -#~ msgid "Bot instances" -#~ msgstr "" - -#~ msgid "Poling timeout" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/filters/callback_data.po b/docs/locale/en/LC_MESSAGES/dispatcher/filters/callback_data.po deleted file mode 100644 index 559bf6be..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/filters/callback_data.po +++ /dev/null @@ -1,160 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/filters/callback_data.rst:3 -msgid "Callback Data Factory & Filter" -msgstr "" - -#: aiogram.filters.callback_data.CallbackData:1 of -msgid "Base class for callback data wrapper" -msgstr "" - -#: aiogram.filters.callback_data.CallbackData:3 of -msgid "This class should be used as super-class of user-defined callbacks." -msgstr "" - -#: aiogram.filters.callback_data.CallbackData:5 of -msgid "" -"The class-keyword :code:`prefix` is required to define prefix and also " -"the argument :code:`sep` can be passed to define separator (default is " -":code:`:`)." -msgstr "" - -#: aiogram.filters.callback_data.CallbackData.pack:1 of -msgid "Generate callback data string" -msgstr "" - -#: aiogram.filters.callback_data.CallbackData.filter -#: aiogram.filters.callback_data.CallbackData.pack -#: aiogram.filters.callback_data.CallbackData.unpack of -msgid "Returns" -msgstr "" - -#: aiogram.filters.callback_data.CallbackData.pack:3 of -msgid "valid callback data for Telegram Bot API" -msgstr "" - -#: aiogram.filters.callback_data.CallbackData.unpack:1 of -msgid "Parse callback data string" -msgstr "" - -#: aiogram.filters.callback_data.CallbackData.filter -#: aiogram.filters.callback_data.CallbackData.unpack of -msgid "Parameters" -msgstr "" - -#: aiogram.filters.callback_data.CallbackData.unpack:3 of -msgid "value from Telegram" -msgstr "" - -#: aiogram.filters.callback_data.CallbackData.unpack:4 of -msgid "instance of CallbackData" -msgstr "" - -#: aiogram.filters.callback_data.CallbackData.filter:1 of -msgid "Generates a filter for callback query with rule" -msgstr "" - -#: aiogram.filters.callback_data.CallbackData.filter:3 of -msgid "magic rule" -msgstr "" - -#: aiogram.filters.callback_data.CallbackData.filter:4 of -msgid "instance of filter" -msgstr "" - -#: ../../dispatcher/filters/callback_data.rst:11 -msgid "Usage" -msgstr "" - -#: ../../dispatcher/filters/callback_data.rst:13 -msgid "Create subclass of :code:`CallbackData`:" -msgstr "" - -#: ../../dispatcher/filters/callback_data.rst:21 -msgid "After that you can generate any callback based on this class, for example:" -msgstr "" - -#: ../../dispatcher/filters/callback_data.rst:29 -msgid "" -"So... Now you can use this class to generate any callbacks with defined " -"structure" -msgstr "" - -#: ../../dispatcher/filters/callback_data.rst:41 -msgid "... and handle by specific rules" -msgstr "" - -#: ../../dispatcher/filters/callback_data.rst:52 -msgid "Also can be used in :doc:`Keyboard builder `:" -msgstr "" - -#: ../../dispatcher/filters/callback_data.rst:63 -msgid "Another abstract example:" -msgstr "" - -#: ../../dispatcher/filters/callback_data.rst:101 -msgid "Known limitations" -msgstr "" - -#: ../../dispatcher/filters/callback_data.rst:103 -msgid "Allowed types and their subclasses:" -msgstr "" - -#: ../../dispatcher/filters/callback_data.rst:105 -msgid ":code:`str`" -msgstr "" - -#: ../../dispatcher/filters/callback_data.rst:106 -msgid ":code:`int`" -msgstr "" - -#: ../../dispatcher/filters/callback_data.rst:107 -msgid ":code:`bool`" -msgstr "" - -#: ../../dispatcher/filters/callback_data.rst:108 -msgid ":code:`float`" -msgstr "" - -#: ../../dispatcher/filters/callback_data.rst:109 -msgid ":code:`Decimal` (:code:`from decimal import Decimal`)" -msgstr "" - -#: ../../dispatcher/filters/callback_data.rst:110 -msgid ":code:`Fraction` (:code:`from fractions import Fraction`)" -msgstr "" - -#: ../../dispatcher/filters/callback_data.rst:111 -msgid ":code:`UUID` (:code:`from uuid import UUID`)" -msgstr "" - -#: ../../dispatcher/filters/callback_data.rst:112 -msgid ":code:`Enum` (:code:`from enum import Enum`, only for string enums)" -msgstr "" - -#: ../../dispatcher/filters/callback_data.rst:113 -msgid ":code:`IntEnum` (:code:`from enum import IntEnum`, only for int enums)" -msgstr "" - -#: ../../dispatcher/filters/callback_data.rst:118 -msgid "" -"Note that the integer Enum's should be always is subclasses of " -":code:`IntEnum` in due to parsing issues." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/filters/chat_member_updated.po b/docs/locale/en/LC_MESSAGES/dispatcher/filters/chat_member_updated.po deleted file mode 100644 index dcf0c9c6..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/filters/chat_member_updated.po +++ /dev/null @@ -1,224 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/filters/chat_member_updated.rst:3 -msgid "ChatMemberUpdated" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:10 -msgid "" -"You can import from :code:`aiogram.filters` all available variants of " -"`statuses`_, `status groups`_ or `transitions`_:" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:14 -msgid "Statuses" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:17 -#: ../../dispatcher/filters/chat_member_updated.rst:42 -#: ../../dispatcher/filters/chat_member_updated.rst:62 -msgid "name" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:17 -#: ../../dispatcher/filters/chat_member_updated.rst:42 -#: ../../dispatcher/filters/chat_member_updated.rst:62 -msgid "Description" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:19 -msgid ":code:`CREATOR`" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:19 -msgid "Chat owner" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:21 -msgid ":code:`ADMINISTRATOR`" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:21 -msgid "Chat administrator" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:23 -msgid ":code:`MEMBER`" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:23 -msgid "Member of the chat" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:25 -msgid ":code:`RESTRICTED`" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:25 -msgid "Restricted user (can be not member)" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:27 -msgid ":code:`LEFT`" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:27 -msgid "Isn't member of the chat" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:29 -msgid ":code:`KICKED`" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:29 -msgid "Kicked member by administrators" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:32 -msgid "" -"Statuses can be extended with `is_member` flag by prefixing with " -":code:`+` (for :code:`is_member == True)` or :code:`-` (for " -":code:`is_member == False`) symbol, like :code:`+RESTRICTED` or " -":code:`-RESTRICTED`" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:37 -msgid "Status groups" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:39 -msgid "" -"The particular statuses can be combined via bitwise :code:`or` operator, " -"like :code:`CREATOR | ADMINISTRATOR`" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:44 -msgid ":code:`IS_MEMBER`" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:44 -msgid "" -"Combination of :code:`(CREATOR | ADMINISTRATOR | MEMBER | +RESTRICTED)` " -"statuses." -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:46 -msgid ":code:`IS_ADMIN`" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:46 -msgid "Combination of :code:`(CREATOR | ADMINISTRATOR)` statuses." -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:48 -msgid ":code:`IS_NOT_MEMBER`" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:48 -msgid "Combination of :code:`(LEFT | KICKED | -RESTRICTED)` statuses." -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:52 -msgid "Transitions" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:54 -msgid "" -"Transitions can be defined via bitwise shift operators :code:`>>` and " -":code:`<<`. Old chat member status should be defined in the left side for" -" :code:`>>` operator (right side for :code:`<<`) and new status should be" -" specified on the right side for :code:`>>` operator (left side for " -":code:`<<`)" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:58 -msgid "" -"The direction of transition can be changed via bitwise inversion " -"operator: :code:`~JOIN_TRANSITION` will produce swap of old and new " -"statuses." -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:64 -msgid ":code:`JOIN_TRANSITION`" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:64 -msgid "" -"Means status changed from :code:`IS_NOT_MEMBER` to :code:`IS_MEMBER` " -"(:code:`IS_NOT_MEMBER >> IS_MEMBER`)" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:67 -msgid ":code:`LEAVE_TRANSITION`" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:67 -msgid "" -"Means status changed from :code:`IS_MEMBER` to :code:`IS_NOT_MEMBER` " -"(:code:`~JOIN_TRANSITION`)" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:70 -msgid ":code:`PROMOTED_TRANSITION`" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:70 -msgid "" -"Means status changed from :code:`(MEMBER | RESTRICTED | LEFT | KICKED) >>" -" ADMINISTRATOR` (:code:`(MEMBER | RESTRICTED | LEFT | KICKED) >> " -"ADMINISTRATOR`)" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:77 -msgid "" -"Note that if you define the status unions (via :code:`|`) you will need " -"to add brackets for the statement before use shift operator in due to " -"operator priorities." -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:81 -msgid "Usage" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:83 -msgid "Handle user leave or join events" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:95 -msgid "" -"Or construct your own terms via using pre-defined set of statuses and " -"transitions." -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:98 -msgid "Allowed handlers" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:100 -msgid "Allowed update types for this filter:" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:102 -msgid "`my_chat_member`" -msgstr "" - -#: ../../dispatcher/filters/chat_member_updated.rst:103 -msgid "`chat_member`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/filters/command.po b/docs/locale/en/LC_MESSAGES/dispatcher/filters/command.po deleted file mode 100644 index 846f439e..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/filters/command.po +++ /dev/null @@ -1,156 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/filters/command.rst:3 -msgid "Command" -msgstr "" - -#: aiogram.filters.command.Command:1 of -msgid "This filter can be helpful for handling commands from the text messages." -msgstr "" - -#: aiogram.filters.command.Command:3 of -msgid "" -"Works only with :class:`aiogram.types.message.Message` events which have " -"the :code:`text`." -msgstr "" - -#: aiogram.filters.command.Command.__init__:1 of -msgid "List of commands (string or compiled regexp patterns)" -msgstr "" - -#: aiogram.filters.command.Command.__init__ of -msgid "Parameters" -msgstr "" - -#: aiogram.filters.command.Command.__init__:3 of -msgid "" -"Prefix for command. Prefix is always a single char but here you can pass " -"all of allowed prefixes, for example: :code:`\"/!\"` will work with " -"commands prefixed by :code:`\"/\"` or :code:`\"!\"`." -msgstr "" - -#: aiogram.filters.command.Command.__init__:7 of -msgid "Ignore case (Does not work with regexp, use flags instead)" -msgstr "" - -#: aiogram.filters.command.Command.__init__:8 of -msgid "" -"Ignore bot mention. By default, bot can not handle commands intended for " -"other bots" -msgstr "" - -#: aiogram.filters.command.Command.__init__:10 of -msgid "Validate command object via Magic filter after all checks done" -msgstr "" - -#: ../../dispatcher/filters/command.rst:10 -msgid "" -"When filter is passed the :class:`aiogram.filters.command.CommandObject` " -"will be passed to the handler argument :code:`command`" -msgstr "" - -#: aiogram.filters.command.CommandObject:1 of -msgid "" -"Instance of this object is always has command and it prefix. Can be " -"passed as keyword argument **command** to the handler" -msgstr "" - -#: ../../docstring aiogram.filters.command.CommandObject.prefix:1 of -msgid "Command prefix" -msgstr "" - -#: ../../docstring aiogram.filters.command.CommandObject.command:1 of -msgid "Command without prefix and mention" -msgstr "" - -#: ../../docstring aiogram.filters.command.CommandObject.mention:1 of -msgid "Mention (if available)" -msgstr "" - -#: ../../docstring aiogram.filters.command.CommandObject.args:1 of -msgid "Command argument" -msgstr "" - -#: ../../docstring aiogram.filters.command.CommandObject.regexp_match:1 of -msgid "" -"Will be presented match result if the command is presented as regexp in " -"filter" -msgstr "" - -#: aiogram.filters.command.CommandObject.mentioned:1 of -msgid "This command has mention?" -msgstr "" - -#: aiogram.filters.command.CommandObject.text:1 of -msgid "Generate original text from object" -msgstr "" - -#: ../../dispatcher/filters/command.rst:19 -msgid "Usage" -msgstr "" - -#: ../../dispatcher/filters/command.rst:21 -msgid "Filter single variant of commands: :code:`Command(\"start\")`" -msgstr "" - -#: ../../dispatcher/filters/command.rst:22 -msgid "" -"Handle command by regexp pattern: " -":code:`Command(re.compile(r\"item_(\\d+)\"))`" -msgstr "" - -#: ../../dispatcher/filters/command.rst:23 -msgid "" -"Match command by multiple variants: :code:`Command(\"item\", " -"re.compile(r\"item_(\\d+)\"))`" -msgstr "" - -#: ../../dispatcher/filters/command.rst:24 -msgid "" -"Handle commands in public chats intended for other bots: " -":code:`Command(\"command\", ignore_mention=True)`" -msgstr "" - -#: ../../dispatcher/filters/command.rst:25 -msgid "" -"Use :class:`aiogram.types.bot_command.BotCommand` object as command " -"reference :code:`Command(BotCommand(command=\"command\", description=\"My" -" awesome command\")`" -msgstr "" - -#: ../../dispatcher/filters/command.rst:29 -msgid "Command cannot include spaces or any whitespace" -msgstr "" - -#: ../../dispatcher/filters/command.rst:32 -msgid "Allowed handlers" -msgstr "" - -#: ../../dispatcher/filters/command.rst:34 -msgid "Allowed update types for this filter:" -msgstr "" - -#: ../../dispatcher/filters/command.rst:36 -msgid "`message`" -msgstr "" - -#: ../../dispatcher/filters/command.rst:37 -msgid "`edited_message`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/filters/exception.po b/docs/locale/en/LC_MESSAGES/dispatcher/filters/exception.po deleted file mode 100644 index 75292abb..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/filters/exception.po +++ /dev/null @@ -1,46 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/filters/exception.rst:3 -msgid "Exceptions" -msgstr "" - -#: ../../dispatcher/filters/exception.rst:5 -msgid "This filters can be helpful for handling errors from the text messages." -msgstr "" - -#: aiogram.filters.exception.ExceptionTypeFilter:1 of -msgid "Allows to match exception by type" -msgstr "" - -#: aiogram.filters.exception.ExceptionMessageFilter:1 of -msgid "Allow to match exception by message" -msgstr "" - -#: ../../dispatcher/filters/exception.rst:18 -msgid "Allowed handlers" -msgstr "" - -#: ../../dispatcher/filters/exception.rst:20 -msgid "Allowed update types for this filters:" -msgstr "" - -#: ../../dispatcher/filters/exception.rst:22 -msgid ":code:`error`" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/filters/index.po b/docs/locale/en/LC_MESSAGES/dispatcher/filters/index.po deleted file mode 100644 index 5151825e..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/filters/index.po +++ /dev/null @@ -1,178 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-18 01:50+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/filters/index.rst:3 -msgid "Filtering events" -msgstr "" - -#: ../../dispatcher/filters/index.rst:5 -msgid "" -"Filters is needed for routing updates to the specific handler. Searching " -"of handler is always stops on first match set of filters are pass." -msgstr "" - -#: ../../dispatcher/filters/index.rst:8 -msgid "*aiogram* has some builtin useful filters." -msgstr "" - -#: ../../dispatcher/filters/index.rst:11 -msgid "Builtin filters" -msgstr "" - -#: ../../dispatcher/filters/index.rst:13 -msgid "Here is list of builtin filters:" -msgstr "" - -#: ../../dispatcher/filters/index.rst:27 -msgid "Writing own filters" -msgstr "" - -#: ../../dispatcher/filters/index.rst:29 -msgid "Filters can be:" -msgstr "" - -#: ../../dispatcher/filters/index.rst:31 -msgid "Asynchronous function (:code:`async def my_filter(*args, **kwargs): pass`)" -msgstr "" - -#: ../../dispatcher/filters/index.rst:32 -msgid "Synchronous function (:code:`def my_filter(*args, **kwargs): pass`)" -msgstr "" - -#: ../../dispatcher/filters/index.rst:33 -msgid "Anonymous function (:code:`lambda event: True`)" -msgstr "" - -#: ../../dispatcher/filters/index.rst:34 -msgid "Any awaitable object" -msgstr "" - -#: ../../dispatcher/filters/index.rst:35 -msgid "Subclass of :class:`aiogram.filters.base.Filter`" -msgstr "" - -#: ../../dispatcher/filters/index.rst:36 -msgid "Instances of :ref:`MagicFilter `" -msgstr "" - -#: ../../dispatcher/filters/index.rst:38 -msgid "" -"and should return bool or dict. If the dictionary is passed as result of " -"filter - resulted data will be propagated to the next filters and handler" -" as keywords arguments." -msgstr "" - -#: ../../dispatcher/filters/index.rst:43 -msgid "Base class for own filters" -msgstr "" - -#: aiogram.filters.base.Filter:1 of -msgid "" -"If you want to register own filters like builtin filters you will need to" -" write subclass of this class with overriding the :code:`__call__` method" -" and adding filter attributes." -msgstr "" - -#: aiogram.filters.base.Filter.__call__:1 of -msgid "This method should be overridden." -msgstr "" - -#: aiogram.filters.base.Filter.__call__:3 of -msgid "Accepts incoming event and should return boolean or dict." -msgstr "" - -#: aiogram.filters.base.Filter.__call__ of -msgid "Returns" -msgstr "" - -#: aiogram.filters.base.Filter.__call__:5 of -msgid ":class:`bool` or :class:`Dict[str, Any]`" -msgstr "" - -#: aiogram.filters.base.Filter.update_handler_flags:1 of -msgid "" -"Also if you want to extend handler flags with using this filter you " -"should implement this method" -msgstr "" - -#: aiogram.filters.base.Filter.update_handler_flags of -msgid "Parameters" -msgstr "" - -#: aiogram.filters.base.Filter.update_handler_flags:3 of -msgid "existing flags, can be updated directly" -msgstr "" - -#: ../../dispatcher/filters/index.rst:51 -msgid "Own filter example" -msgstr "" - -#: ../../dispatcher/filters/index.rst:53 -msgid "For example if you need to make simple text filter:" -msgstr "" - -#: ../../dispatcher/filters/index.rst:60 -msgid "Combining Filters" -msgstr "" - -#: ../../dispatcher/filters/index.rst:62 -msgid "In general, all filters can be combined in two ways" -msgstr "" - -#: ../../dispatcher/filters/index.rst:66 -msgid "Recommended way" -msgstr "" - -#: ../../dispatcher/filters/index.rst:68 -msgid "" -"If you specify multiple filters in a row, it will be checked with an " -"\"and\" condition:" -msgstr "" - -#: ../../dispatcher/filters/index.rst:75 -msgid "" -"Also, if you want to use two alternative ways to run the same handler " -"(\"or\" condition) you can register the handler twice or more times as " -"you like" -msgstr "" - -#: ../../dispatcher/filters/index.rst:84 -msgid "" -"Also sometimes you will need to invert the filter result, for example you" -" have an *IsAdmin* filter and you want to check if the user is not an " -"admin" -msgstr "" - -#: ../../dispatcher/filters/index.rst:93 -msgid "Another possible way" -msgstr "" - -#: ../../dispatcher/filters/index.rst:95 -msgid "" -"An alternative way is to combine using special functions (:func:`and_f`, " -":func:`or_f`, :func:`invert_f` from :code:`aiogram.filters` module):" -msgstr "" - -#~ msgid "" -#~ "Also, if you want to use two " -#~ "alternative ways to run the sage " -#~ "handler (\"or\" condition) you can " -#~ "register the handler twice or more " -#~ "times as you like" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/filters/magic_data.po b/docs/locale/en/LC_MESSAGES/dispatcher/filters/magic_data.po deleted file mode 100644 index 57280bd2..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/filters/magic_data.po +++ /dev/null @@ -1,118 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 22:10+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/filters/magic_data.rst:3 -msgid "MagicData" -msgstr "" - -#: aiogram.filters.magic_data.MagicData:1 of -msgid "This filter helps to filter event with contextual data" -msgstr "" - -#: ../../dispatcher/filters/magic_data.rst:10 -msgid "Can be imported:" -msgstr "" - -#: ../../dispatcher/filters/magic_data.rst:12 -msgid ":code:`from aiogram.filters import MagicData`" -msgstr "" - -#: ../../dispatcher/filters/magic_data.rst:15 -msgid "Usage" -msgstr "" - -#: ../../dispatcher/filters/magic_data.rst:17 -msgid "" -":code:`MagicData(F.event.from_user.id == F.config.admin_id)` (Note that " -":code:`config` should be passed from middleware)" -msgstr "" - -#: ../../dispatcher/filters/magic_data.rst:21 -msgid "Allowed handlers" -msgstr "" - -#: ../../dispatcher/filters/magic_data.rst:23 -msgid "Allowed update types for this filter:" -msgstr "" - -#: ../../dispatcher/filters/magic_data.rst:25 -msgid ":code:`message`" -msgstr "" - -#: ../../dispatcher/filters/magic_data.rst:26 -msgid ":code:`edited_message`" -msgstr "" - -#: ../../dispatcher/filters/magic_data.rst:27 -msgid ":code:`channel_post`" -msgstr "" - -#: ../../dispatcher/filters/magic_data.rst:28 -msgid ":code:`edited_channel_post`" -msgstr "" - -#: ../../dispatcher/filters/magic_data.rst:29 -msgid ":code:`inline_query`" -msgstr "" - -#: ../../dispatcher/filters/magic_data.rst:30 -msgid ":code:`chosen_inline_result`" -msgstr "" - -#: ../../dispatcher/filters/magic_data.rst:31 -msgid ":code:`callback_query`" -msgstr "" - -#: ../../dispatcher/filters/magic_data.rst:32 -msgid ":code:`shipping_query`" -msgstr "" - -#: ../../dispatcher/filters/magic_data.rst:33 -msgid ":code:`pre_checkout_query`" -msgstr "" - -#: ../../dispatcher/filters/magic_data.rst:34 -msgid ":code:`poll`" -msgstr "" - -#: ../../dispatcher/filters/magic_data.rst:35 -msgid ":code:`poll_answer`" -msgstr "" - -#: ../../dispatcher/filters/magic_data.rst:36 -msgid ":code:`my_chat_member`" -msgstr "" - -#: ../../dispatcher/filters/magic_data.rst:37 -msgid ":code:`chat_member`" -msgstr "" - -#: ../../dispatcher/filters/magic_data.rst:38 -msgid ":code:`chat_join_request`" -msgstr "" - -#: ../../dispatcher/filters/magic_data.rst:39 -msgid ":code:`error`" -msgstr "" - -#~ msgid "" -#~ "Or used from filters factory by " -#~ "passing corresponding arguments to handler " -#~ "registration line" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/filters/magic_filters.po b/docs/locale/en/LC_MESSAGES/dispatcher/filters/magic_filters.po deleted file mode 100644 index 6f7bd698..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/filters/magic_filters.po +++ /dev/null @@ -1,175 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/filters/magic_filters.rst:5 -msgid "Magic filters" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:9 -msgid "This page still in progress. Has many incorrectly worded sentences." -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:11 -msgid "Is external package maintained by *aiogram* core team." -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:13 -msgid "" -"By default installs with *aiogram* and also is available on `PyPi - " -"magic-filter `_. That's mean you " -"can install it and use with any other libraries and in own projects " -"without depending *aiogram* installed." -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:17 -msgid "Usage" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:19 -msgid "" -"The **magic_filter** package implements class shortly named " -":class:`magic_filter.F` that's mean :code:`F` can be imported from " -":code:`aiogram` or :code:`magic_filter`. :class:`F` is alias for " -":class:`MagicFilter`." -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:23 -msgid "" -"Note that *aiogram* has an small extension over magic-filter and if you " -"want to use this extension you should import magic from *aiogram* instead" -" of *magic_filter* package" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:25 -msgid "" -"The :class:`MagicFilter` object is callable, supports :ref:`some actions " -"` and memorize the attributes chain and " -"the action which should be checked on demand." -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:28 -msgid "" -"So that's mean you can chain attribute getters, describe simple data " -"validations and then call the resulted object passing single object as " -"argument, for example make attributes chain :code:`F.foo.bar.baz` then " -"add action ':code:`F.foo.bar.baz == 'spam'` and then call the resulted " -"object - :code:`(F.foo.bar.baz == 'spam').resolve(obj)`" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:36 -msgid "Possible actions" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:38 -msgid "" -"Magic filter object supports some of basic logical operations over object" -" attributes" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:41 -msgid "Exists or not None" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:43 -msgid "Default actions." -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:50 -msgid "Equals" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:58 -msgid "Is one of" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:60 -msgid "" -"Can be used as method named :code:`in_` or as matmul operator :code:`@` " -"with any iterable" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:68 -msgid "Contains" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:75 -msgid "String startswith/endswith" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:77 -msgid "Can be applied only for text attributes" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:85 -msgid "Regexp" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:92 -msgid "Custom function" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:94 -msgid "Accepts any callable. Callback will be called when filter checks result" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:101 -msgid "Inverting result" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:103 -msgid "" -"Any of available operation can be inverted by bitwise inversion - " -":code:`~`" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:111 -msgid "Combining" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:113 -msgid "" -"All operations can be combined via bitwise and/or operators - " -":code:`&`/:code:`|`" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:123 -msgid "Attribute modifiers - string manipulations" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:125 -msgid "Make text upper- or lower-case" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:127 -msgid "Can be used only with string attributes." -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:137 -msgid "Get filter result as handler argument" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:139 -msgid "" -"This part is not available in *magic-filter* directly but can be used " -"with *aiogram*" -msgstr "" - -#: ../../dispatcher/filters/magic_filters.rst:152 -msgid "Usage in *aiogram*" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/finite_state_machine/index.po b/docs/locale/en/LC_MESSAGES/dispatcher/finite_state_machine/index.po deleted file mode 100644 index 0d9353d2..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/finite_state_machine/index.po +++ /dev/null @@ -1,130 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/finite_state_machine/index.rst:3 -msgid "Finite State Machine" -msgstr "" - -#: ../../dispatcher/finite_state_machine/index.rst:5 -msgid "" -"A finite-state machine (FSM) or finite-state automaton (FSA, plural: " -"automata), finite automaton, or simply a state machine, is a mathematical" -" model of computation." -msgstr "" - -#: ../../dispatcher/finite_state_machine/index.rst:8 -msgid "" -"It is an abstract machine that can be in exactly one of a finite number " -"of states at any given time. The FSM can change from one state to another" -" in response to some inputs; the change from one state to another is " -"called a transition." -msgstr "" - -#: ../../dispatcher/finite_state_machine/index.rst:12 -msgid "" -"An FSM is defined by a list of its states, its initial state, and the " -"inputs that trigger each transition." -msgstr "" - -#: ../../dispatcher/finite_state_machine/index.rst:19 -msgid "Source: `WikiPedia `_" -msgstr "" - -#: ../../dispatcher/finite_state_machine/index.rst:22 -msgid "Usage example" -msgstr "" - -#: ../../dispatcher/finite_state_machine/index.rst:24 -msgid "" -"Not all functionality of the bot can be implemented as single handler, " -"for example you will need to collect some data from user in separated " -"steps you will need to use FSM." -msgstr "" - -#: ../../dispatcher/finite_state_machine/index.rst:-1 -msgid "FSM Example" -msgstr "" - -#: ../../dispatcher/finite_state_machine/index.rst:31 -msgid "Let's see how to do that step-by-step" -msgstr "" - -#: ../../dispatcher/finite_state_machine/index.rst:34 -msgid "Step by step" -msgstr "" - -#: ../../dispatcher/finite_state_machine/index.rst:36 -msgid "" -"Before handle any states you will need to specify what kind of states you" -" want to handle" -msgstr "" - -#: ../../dispatcher/finite_state_machine/index.rst:44 -msgid "And then write handler for each state separately from the start of dialog" -msgstr "" - -#: ../../dispatcher/finite_state_machine/index.rst:46 -msgid "" -"Here is dialog can be started only via command :code:`/start`, so lets " -"handle it and make transition user to state :code:`Form.name`" -msgstr "" - -#: ../../dispatcher/finite_state_machine/index.rst:54 -msgid "" -"After that you will need to save some data to the storage and make " -"transition to next step." -msgstr "" - -#: ../../dispatcher/finite_state_machine/index.rst:62 -msgid "" -"At the next steps user can make different answers, it can be `yes`, `no` " -"or any other" -msgstr "" - -#: ../../dispatcher/finite_state_machine/index.rst:64 -msgid "Handle :code:`yes` and soon we need to handle :code:`Form.language` state" -msgstr "" - -#: ../../dispatcher/finite_state_machine/index.rst:72 -msgid "Handle :code:`no`" -msgstr "" - -#: ../../dispatcher/finite_state_machine/index.rst:80 -msgid "And handle any other answers" -msgstr "" - -#: ../../dispatcher/finite_state_machine/index.rst:88 -msgid "" -"All possible cases of `like_bots` step was covered, let's implement " -"finally step" -msgstr "" - -#: ../../dispatcher/finite_state_machine/index.rst:96 -msgid "" -"And now you have covered all steps from the image, but you can make " -"possibility to cancel conversation, lets do that via command or text" -msgstr "" - -#: ../../dispatcher/finite_state_machine/index.rst:105 -msgid "Complete example" -msgstr "" - -#: ../../dispatcher/finite_state_machine/index.rst:112 -msgid "Read more" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/finite_state_machine/storages.po b/docs/locale/en/LC_MESSAGES/dispatcher/finite_state_machine/storages.po deleted file mode 100644 index 271fd8e1..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/finite_state_machine/storages.po +++ /dev/null @@ -1,231 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-02 22:41+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/finite_state_machine/storages.rst:3 -msgid "Storages" -msgstr "" - -#: ../../dispatcher/finite_state_machine/storages.rst:6 -msgid "Storages out of the box" -msgstr "" - -#: ../../dispatcher/finite_state_machine/storages.rst:9 -msgid "MemoryStorage" -msgstr "" - -#: aiogram.fsm.storage.memory.MemoryStorage:1 of -msgid "" -"Default FSM storage, stores all data in :class:`dict` and loss everything" -" on shutdown" -msgstr "" - -#: aiogram.fsm.storage.memory.MemoryStorage:5 of -msgid "" -"Is not recommended using in production in due to you will lose all data " -"when your bot restarts" -msgstr "" - -#: ../../dispatcher/finite_state_machine/storages.rst:16 -msgid "RedisStorage" -msgstr "" - -#: aiogram.fsm.storage.redis.RedisStorage:1 of -msgid "" -"Redis storage required :code:`redis` package installed (:code:`pip " -"install redis`)" -msgstr "" - -#: aiogram.fsm.storage.base.BaseStorage.get_data -#: aiogram.fsm.storage.base.BaseStorage.get_state -#: aiogram.fsm.storage.base.BaseStorage.set_data -#: aiogram.fsm.storage.base.BaseStorage.set_state -#: aiogram.fsm.storage.base.BaseStorage.update_data -#: aiogram.fsm.storage.redis.DefaultKeyBuilder.build -#: aiogram.fsm.storage.redis.KeyBuilder.build -#: aiogram.fsm.storage.redis.RedisStorage.__init__ -#: aiogram.fsm.storage.redis.RedisStorage.from_url of -msgid "Parameters" -msgstr "" - -#: aiogram.fsm.storage.redis.RedisStorage.__init__:1 of -msgid "Instance of Redis connection" -msgstr "" - -#: aiogram.fsm.storage.redis.RedisStorage.__init__:2 of -msgid "builder that helps to convert contextual key to string" -msgstr "" - -#: aiogram.fsm.storage.redis.RedisStorage.__init__:3 of -msgid "TTL for state records" -msgstr "" - -#: aiogram.fsm.storage.redis.RedisStorage.__init__:4 of -msgid "TTL for data records" -msgstr "" - -#: aiogram.fsm.storage.redis.RedisStorage.__init__:5 of -msgid "Custom arguments for Redis lock" -msgstr "" - -#: aiogram.fsm.storage.redis.RedisStorage.from_url:1 of -msgid "" -"Create an instance of :class:`RedisStorage` with specifying the " -"connection string" -msgstr "" - -#: aiogram.fsm.storage.redis.RedisStorage.from_url:3 of -msgid "for example :code:`redis://user:password@host:port/db`" -msgstr "" - -#: aiogram.fsm.storage.redis.RedisStorage.from_url:4 of -msgid "see :code:`redis` docs" -msgstr "" - -#: aiogram.fsm.storage.redis.RedisStorage.from_url:5 of -msgid "arguments to be passed to :class:`RedisStorage`" -msgstr "" - -#: aiogram.fsm.storage.base.BaseStorage.get_data -#: aiogram.fsm.storage.base.BaseStorage.get_state -#: aiogram.fsm.storage.base.BaseStorage.update_data -#: aiogram.fsm.storage.redis.DefaultKeyBuilder.build -#: aiogram.fsm.storage.redis.KeyBuilder.build -#: aiogram.fsm.storage.redis.RedisStorage.from_url of -msgid "Returns" -msgstr "" - -#: aiogram.fsm.storage.redis.RedisStorage.from_url:6 of -msgid "an instance of :class:`RedisStorage`" -msgstr "" - -#: ../../dispatcher/finite_state_machine/storages.rst:22 -msgid "Keys inside storage can be customized via key builders:" -msgstr "" - -#: aiogram.fsm.storage.redis.KeyBuilder:1 of -msgid "Base class for Redis key builder" -msgstr "" - -#: aiogram.fsm.storage.redis.DefaultKeyBuilder.build:1 -#: aiogram.fsm.storage.redis.KeyBuilder.build:1 of -msgid "This method should be implemented in subclasses" -msgstr "" - -#: aiogram.fsm.storage.redis.DefaultKeyBuilder.build:3 -#: aiogram.fsm.storage.redis.KeyBuilder.build:3 of -msgid "contextual key" -msgstr "" - -#: aiogram.fsm.storage.redis.DefaultKeyBuilder.build:4 -#: aiogram.fsm.storage.redis.KeyBuilder.build:4 of -msgid "part of the record" -msgstr "" - -#: aiogram.fsm.storage.redis.DefaultKeyBuilder.build:5 -#: aiogram.fsm.storage.redis.KeyBuilder.build:5 of -msgid "key to be used in Redis queries" -msgstr "" - -#: aiogram.fsm.storage.redis.DefaultKeyBuilder:1 of -msgid "Simple Redis key builder with default prefix." -msgstr "" - -#: aiogram.fsm.storage.redis.DefaultKeyBuilder:3 of -msgid "" -"Generates a colon-joined string with prefix, chat_id, user_id, optional " -"bot_id and optional destiny." -msgstr "" - -#: ../../dispatcher/finite_state_machine/storages.rst:34 -msgid "Writing own storages" -msgstr "" - -#: aiogram.fsm.storage.base.BaseStorage:1 of -msgid "Base class for all FSM storages" -msgstr "" - -#: aiogram.fsm.storage.base.BaseStorage.set_state:1 of -msgid "Set state for specified key" -msgstr "" - -#: aiogram.fsm.storage.base.BaseStorage.get_data:3 -#: aiogram.fsm.storage.base.BaseStorage.get_state:3 -#: aiogram.fsm.storage.base.BaseStorage.set_data:3 -#: aiogram.fsm.storage.base.BaseStorage.set_state:3 -#: aiogram.fsm.storage.base.BaseStorage.update_data:3 of -msgid "instance of the current bot" -msgstr "" - -#: aiogram.fsm.storage.base.BaseStorage.get_data:4 -#: aiogram.fsm.storage.base.BaseStorage.get_state:4 -#: aiogram.fsm.storage.base.BaseStorage.set_data:4 -#: aiogram.fsm.storage.base.BaseStorage.set_state:4 -#: aiogram.fsm.storage.base.BaseStorage.update_data:4 of -msgid "storage key" -msgstr "" - -#: aiogram.fsm.storage.base.BaseStorage.set_state:5 of -msgid "new state" -msgstr "" - -#: aiogram.fsm.storage.base.BaseStorage.get_state:1 of -msgid "Get key state" -msgstr "" - -#: aiogram.fsm.storage.base.BaseStorage.get_state:5 of -msgid "current state" -msgstr "" - -#: aiogram.fsm.storage.base.BaseStorage.set_data:1 of -msgid "Write data (replace)" -msgstr "" - -#: aiogram.fsm.storage.base.BaseStorage.set_data:5 -#: aiogram.fsm.storage.base.BaseStorage.update_data:6 of -msgid "new data" -msgstr "" - -#: aiogram.fsm.storage.base.BaseStorage.get_data:1 of -msgid "Get current data for key" -msgstr "" - -#: aiogram.fsm.storage.base.BaseStorage.get_data:5 of -msgid "current data" -msgstr "" - -#: aiogram.fsm.storage.base.BaseStorage.update_data:1 of -msgid "Update date in the storage for key (like dict.update)" -msgstr "" - -#: aiogram.fsm.storage.base.BaseStorage.update_data:5 of -msgid "partial data" -msgstr "" - -#: aiogram.fsm.storage.base.BaseStorage.close:1 of -msgid "Close storage (database connection, file or etc.)" -msgstr "" - -#~ msgid "" -#~ "Redis storage required :code:`aioredis` " -#~ "package installed (:code:`pip install " -#~ "aioredis`)" -#~ msgstr "" - -#~ msgid "see :code:`aioredis` docs" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/flags.po b/docs/locale/en/LC_MESSAGES/dispatcher/flags.po deleted file mode 100644 index 0ad40047..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/flags.po +++ /dev/null @@ -1,129 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-07 23:33+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/flags.rst:3 -msgid "Flags" -msgstr "" - -#: ../../dispatcher/flags.rst:5 -msgid "" -"Flags is a markers for handlers that can be used in `middlewares <#use-" -"in-middlewares>`_ or special `utilities <#use-in-utilities>`_ to make " -"classification of the handlers." -msgstr "" - -#: ../../dispatcher/flags.rst:8 -msgid "" -"Flags can be added to the handler via `decorators <#via-decorators>`_, " -"`handlers registration <#via-handler-registration-method>`_ or `filters " -"`_." -msgstr "" - -#: ../../dispatcher/flags.rst:13 -msgid "Via decorators" -msgstr "" - -#: ../../dispatcher/flags.rst:15 -msgid "For example mark handler with `chat_action` flag" -msgstr "" - -#: ../../dispatcher/flags.rst:24 -msgid "Or just for rate-limit or something else" -msgstr "" - -#: ../../dispatcher/flags.rst:34 -msgid "Via handler registration method" -msgstr "" - -#: ../../dispatcher/flags.rst:41 -msgid "Via filters" -msgstr "" - -#: ../../dispatcher/flags.rst:55 -msgid "Use in middlewares" -msgstr "" - -#: aiogram.dispatcher.flags.check_flags:1 of -msgid "Check flags via magic filter" -msgstr "" - -#: aiogram.dispatcher.flags.check_flags aiogram.dispatcher.flags.extract_flags -#: aiogram.dispatcher.flags.get_flag of -msgid "Parameters" -msgstr "" - -#: aiogram.dispatcher.flags.check_flags:3 -#: aiogram.dispatcher.flags.extract_flags:3 aiogram.dispatcher.flags.get_flag:3 -#: of -msgid "handler object or data" -msgstr "" - -#: aiogram.dispatcher.flags.check_flags:4 of -msgid "instance of the magic" -msgstr "" - -#: aiogram.dispatcher.flags.check_flags aiogram.dispatcher.flags.extract_flags -#: aiogram.dispatcher.flags.get_flag of -msgid "Returns" -msgstr "" - -#: aiogram.dispatcher.flags.check_flags:5 of -msgid "the result of magic filter check" -msgstr "" - -#: aiogram.dispatcher.flags.extract_flags:1 of -msgid "Extract flags from handler or middleware context data" -msgstr "" - -#: aiogram.dispatcher.flags.extract_flags:4 of -msgid "dictionary with all handler flags" -msgstr "" - -#: aiogram.dispatcher.flags.get_flag:1 of -msgid "Get flag by name" -msgstr "" - -#: aiogram.dispatcher.flags.get_flag:4 of -msgid "name of the flag" -msgstr "" - -#: aiogram.dispatcher.flags.get_flag:5 of -msgid "default value (None)" -msgstr "" - -#: aiogram.dispatcher.flags.get_flag:6 of -msgid "value of the flag or default" -msgstr "" - -#: ../../dispatcher/flags.rst:62 -msgid "Example in middlewares" -msgstr "" - -#: ../../dispatcher/flags.rst:75 -msgid "Use in utilities" -msgstr "" - -#: ../../dispatcher/flags.rst:77 -msgid "" -"For example you can collect all registered commands with handler " -"description and then it can be used for generating commands help" -msgstr "" - -#~ msgid "FlagDecorator(flag: aiogram.dispatcher.flags.Flag)" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/index.po b/docs/locale/en/LC_MESSAGES/dispatcher/index.po deleted file mode 100644 index 3d9f47a4..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/index.po +++ /dev/null @@ -1,56 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/index.rst:3 -msgid "Handling events" -msgstr "" - -#: ../../dispatcher/index.rst:5 -msgid "" -"*aiogram* includes Dispatcher mechanism. Dispatcher is needed for " -"handling incoming updates from Telegram." -msgstr "" - -#: ../../dispatcher/index.rst:8 -msgid "With dispatcher you can do:" -msgstr "" - -#: ../../dispatcher/index.rst:10 -msgid "Handle incoming updates;" -msgstr "" - -#: ../../dispatcher/index.rst:11 -msgid "Filter incoming events before it will be processed by specific handler;" -msgstr "" - -#: ../../dispatcher/index.rst:12 -msgid "Modify event and related data in middlewares;" -msgstr "" - -#: ../../dispatcher/index.rst:13 -msgid "" -"Separate bot functionality between different handlers, modules and " -"packages" -msgstr "" - -#: ../../dispatcher/index.rst:15 -msgid "" -"Dispatcher is also separated into two entities - Router and Dispatcher. " -"Dispatcher is subclass of router and should be always is root router." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/middlewares.po b/docs/locale/en/LC_MESSAGES/dispatcher/middlewares.po deleted file mode 100644 index e562e992..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/middlewares.po +++ /dev/null @@ -1,181 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/middlewares.rst:3 -msgid "Middlewares" -msgstr "" - -#: ../../dispatcher/middlewares.rst:5 -msgid "" -"**aiogram** provides powerful mechanism for customizing event handlers " -"via middlewares." -msgstr "" - -#: ../../dispatcher/middlewares.rst:7 -msgid "" -"Middlewares in bot framework seems like Middlewares mechanism in web-" -"frameworks like `aiohttp " -"`_, `fastapi " -"`_, `Django " -"`_ or " -"etc.) with small difference - here is implemented two layers of " -"middlewares (before and after filters)." -msgstr "" - -#: ../../dispatcher/middlewares.rst:15 -msgid "" -"Middleware is function that triggered on every event received from " -"Telegram Bot API in many points on processing pipeline." -msgstr "" - -#: ../../dispatcher/middlewares.rst:19 -msgid "Base theory" -msgstr "" - -#: ../../dispatcher/middlewares.rst:21 -msgid "As many books and other literature in internet says:" -msgstr "" - -#: ../../dispatcher/middlewares.rst:23 -msgid "" -"Middleware is reusable software that leverages patterns and frameworks to" -" bridge the gap between the functional requirements of applications and " -"the underlying operating systems, network protocol stacks, and databases." -msgstr "" - -#: ../../dispatcher/middlewares.rst:27 -msgid "" -"Middleware can modify, extend or reject processing event in many places " -"of pipeline." -msgstr "" - -#: ../../dispatcher/middlewares.rst:30 -msgid "Basics" -msgstr "" - -#: ../../dispatcher/middlewares.rst:32 -msgid "" -"Middleware instance can be applied for every type of Telegram Event " -"(Update, Message, etc.) in two places" -msgstr "" - -#: ../../dispatcher/middlewares.rst:34 -msgid "" -"Outer scope - before processing filters " -"(:code:`..outer_middleware(...)`)" -msgstr "" - -#: ../../dispatcher/middlewares.rst:35 -msgid "" -"Inner scope - after processing filters but before handler " -"(:code:`..middleware(...)`)" -msgstr "" - -#: ../../dispatcher/middlewares.rst:-1 -msgid "Middleware basics" -msgstr "" - -#: ../../dispatcher/middlewares.rst:42 -msgid "" -"Middleware should be subclass of :code:`BaseMiddleware` (:code:`from " -"aiogram import BaseMiddleware`) or any async callable" -msgstr "" - -#: ../../dispatcher/middlewares.rst:45 -msgid "Arguments specification" -msgstr "" - -#: aiogram.dispatcher.middlewares.base.BaseMiddleware:1 of -msgid "Bases: :py:class:`~abc.ABC`" -msgstr "" - -#: aiogram.dispatcher.middlewares.base.BaseMiddleware:1 of -msgid "Generic middleware class" -msgstr "" - -#: aiogram.dispatcher.middlewares.base.BaseMiddleware.__call__:1 of -msgid "Execute middleware" -msgstr "" - -#: aiogram.dispatcher.middlewares.base.BaseMiddleware.__call__ of -msgid "Parameters" -msgstr "" - -#: aiogram.dispatcher.middlewares.base.BaseMiddleware.__call__:3 of -msgid "Wrapped handler in middlewares chain" -msgstr "" - -#: aiogram.dispatcher.middlewares.base.BaseMiddleware.__call__:4 of -msgid "Incoming event (Subclass of :class:`aiogram.types.base.TelegramObject`)" -msgstr "" - -#: aiogram.dispatcher.middlewares.base.BaseMiddleware.__call__:5 of -msgid "Contextual data. Will be mapped to handler arguments" -msgstr "" - -#: aiogram.dispatcher.middlewares.base.BaseMiddleware.__call__ of -msgid "Returns" -msgstr "" - -#: aiogram.dispatcher.middlewares.base.BaseMiddleware.__call__:6 of -msgid ":class:`Any`" -msgstr "" - -#: ../../dispatcher/middlewares.rst:56 -msgid "Examples" -msgstr "" - -#: ../../dispatcher/middlewares.rst:60 -msgid "" -"Middleware should always call :code:`await handler(event, data)` to " -"propagate event for next middleware/handler" -msgstr "" - -#: ../../dispatcher/middlewares.rst:64 -msgid "Class-based" -msgstr "" - -#: ../../dispatcher/middlewares.rst:85 -msgid "and then" -msgstr "" - -#: ../../dispatcher/middlewares.rst:94 -msgid "Function-based" -msgstr "" - -#: ../../dispatcher/middlewares.rst:109 -msgid "Facts" -msgstr "" - -#: ../../dispatcher/middlewares.rst:111 -msgid "Middlewares from outer scope will be called on every incoming event" -msgstr "" - -#: ../../dispatcher/middlewares.rst:112 -msgid "Middlewares from inner scope will be called only when filters pass" -msgstr "" - -#: ../../dispatcher/middlewares.rst:113 -msgid "" -"Inner middlewares is always calls for " -":class:`aiogram.types.update.Update` event type in due to all incoming " -"updates going to specific event type handler through built in update " -"handler" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/observer.po b/docs/locale/en/LC_MESSAGES/dispatcher/observer.po deleted file mode 100644 index b8a61e72..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/observer.po +++ /dev/null @@ -1,109 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-19 22:52+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/observer.rst:3 -msgid "Observer" -msgstr "" - -#: ../../dispatcher/observer.rst:5 -msgid "" -"Observer is used for filtering and handling different events. That is " -"part of internal API with some public methods and is recommended to don't" -" use methods is not listed here." -msgstr "" - -#: ../../dispatcher/observer.rst:7 -msgid "In `aiogram` framework is available two variants of observer:" -msgstr "" - -#: ../../dispatcher/observer.rst:9 -msgid "`EventObserver <#eventobserver>`__" -msgstr "" - -#: ../../dispatcher/observer.rst:10 -msgid "`TelegramEventObserver <#telegrameventobserver>`__" -msgstr "" - -#: ../../dispatcher/observer.rst:14 -msgid "EventObserver" -msgstr "" - -#: aiogram.dispatcher.event.event.EventObserver:1 of -msgid "Simple events observer" -msgstr "" - -#: aiogram.dispatcher.event.event.EventObserver:3 of -msgid "" -"Is used for managing events is not related with Telegram (For example " -"startup/shutdown processes)" -msgstr "" - -#: aiogram.dispatcher.event.event.EventObserver:5 of -msgid "Handlers can be registered via decorator or method" -msgstr "" - -#: aiogram.dispatcher.event.event.EventObserver.register:1 of -msgid "Register callback with filters" -msgstr "" - -#: aiogram.dispatcher.event.event.EventObserver.trigger:1 of -msgid "" -"Propagate event to handlers. Handler will be called when all its filters " -"is pass." -msgstr "" - -#: aiogram.dispatcher.event.event.EventObserver.__call__:1 -#: aiogram.dispatcher.event.telegram.TelegramEventObserver.__call__:1 of -msgid "Decorator for registering event handlers" -msgstr "" - -#: ../../dispatcher/observer.rst:22 -msgid "TelegramEventObserver" -msgstr "" - -#: aiogram.dispatcher.event.telegram.TelegramEventObserver:1 of -msgid "Event observer for Telegram events" -msgstr "" - -#: aiogram.dispatcher.event.telegram.TelegramEventObserver:3 of -msgid "" -"Here you can register handler with filter. This observer will stop event " -"propagation when first handler is pass." -msgstr "" - -#: aiogram.dispatcher.event.telegram.TelegramEventObserver.register:1 of -msgid "Register event handler" -msgstr "" - -#: aiogram.dispatcher.event.telegram.TelegramEventObserver.trigger:1 of -msgid "" -"Propagate event to handlers and stops propagation on first match. Handler" -" will be called when all its filters is pass." -msgstr "" - -#~ msgid "" -#~ "Here you can register handler with " -#~ "filters or bounded filters which can " -#~ "be used as keyword arguments instead " -#~ "of writing full references when you " -#~ "register new handlers. This observer " -#~ "will stop event propagation when first" -#~ " handler is pass." -#~ msgstr "" - diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/router.po b/docs/locale/en/LC_MESSAGES/dispatcher/router.po deleted file mode 100644 index 1d194ac3..00000000 --- a/docs/locale/en/LC_MESSAGES/dispatcher/router.po +++ /dev/null @@ -1,222 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../dispatcher/router.rst:3 -msgid "Router" -msgstr "" - -#: aiogram.dispatcher.router.Router:1 of -msgid "Bases: :py:class:`object`" -msgstr "" - -#: aiogram.dispatcher.router.Router:1 of -msgid "" -"Router can route update, and it nested update types like messages, " -"callback query, polls and all other event types." -msgstr "" - -#: aiogram.dispatcher.router.Router:4 of -msgid "Event handlers can be registered in observer by two ways:" -msgstr "" - -#: aiogram.dispatcher.router.Router:6 of -msgid "" -"By observer method - :obj:`router..register(handler, " -")`" -msgstr "" - -#: aiogram.dispatcher.router.Router:7 of -msgid "By decorator - :obj:`@router.()`" -msgstr "" - -#: aiogram.dispatcher.router.Router.__init__ -#: aiogram.dispatcher.router.Router.include_router of -msgid "Parameters" -msgstr "" - -#: aiogram.dispatcher.router.Router.__init__:1 of -msgid "Optional router name, can be useful for debugging" -msgstr "" - -#: aiogram.dispatcher.router.Router.include_router:1 of -msgid "Attach another router." -msgstr "" - -#: aiogram.dispatcher.router.Router.include_router of -msgid "Returns" -msgstr "" - -#: ../../dispatcher/router.rst:11 -msgid "Event observers" -msgstr "" - -#: ../../dispatcher/router.rst:15 -msgid "" -"All handlers always should be asynchronous. The name of the handler " -"function is not important. The event argument name is also not important " -"but it is recommended to not overlap the name with contextual data in due" -" to function can not accept two arguments with the same name." -msgstr "" - -#: ../../dispatcher/router.rst:18 -msgid "" -"Here is the list of available observers and examples of how to register " -"handlers" -msgstr "" - -#: ../../dispatcher/router.rst:20 -msgid "" -"In these examples only decorator-style registering handlers are used, but" -" if you don't like @decorators just use :obj:`.register(...)`" -" method instead." -msgstr "" - -#: ../../dispatcher/router.rst:23 -msgid "Update" -msgstr "" - -#: ../../dispatcher/router.rst:32 -msgid "" -"By default Router already has an update handler which route all event " -"types to another observers." -msgstr "" - -#: ../../dispatcher/router.rst:36 -msgid "Message" -msgstr "" - -#: ../../dispatcher/router.rst:41 -msgid "Be attentive with filtering this event" -msgstr "" - -#: ../../dispatcher/router.rst:43 -msgid "" -"You should expect that this event can be with different sets of " -"attributes in different cases" -msgstr "" - -#: ../../dispatcher/router.rst:45 -msgid "" -"(For example text, sticker and document are always of different content " -"types of message)" -msgstr "" - -#: ../../dispatcher/router.rst:47 -msgid "" -"Recommended way to check field availability before usage, for example via" -" :ref:`magic filter `: :code:`F.text` to handle text, " -":code:`F.sticker` to handle stickers only and etc." -msgstr "" - -#: ../../dispatcher/router.rst:58 -msgid "Edited message" -msgstr "" - -#: ../../dispatcher/router.rst:66 -msgid "Channel post" -msgstr "" - -#: ../../dispatcher/router.rst:74 -msgid "Edited channel post" -msgstr "" - -#: ../../dispatcher/router.rst:83 -msgid "Inline query" -msgstr "" - -#: ../../dispatcher/router.rst:91 -msgid "Chosen inline query" -msgstr "" - -#: ../../dispatcher/router.rst:99 -msgid "Callback query" -msgstr "" - -#: ../../dispatcher/router.rst:107 -msgid "Shipping query" -msgstr "" - -#: ../../dispatcher/router.rst:115 -msgid "Pre checkout query" -msgstr "" - -#: ../../dispatcher/router.rst:123 -msgid "Poll" -msgstr "" - -#: ../../dispatcher/router.rst:131 -msgid "Poll answer" -msgstr "" - -#: ../../dispatcher/router.rst:139 -msgid "Errors" -msgstr "" - -#: ../../dispatcher/router.rst:146 -msgid "Is useful for handling errors from other handlers" -msgstr "" - -#: ../../dispatcher/router.rst:150 -msgid "Nested routers" -msgstr "" - -#: ../../dispatcher/router.rst:155 -msgid "" -"Routers by the way can be nested to an another routers with some " -"limitations:" -msgstr "" - -#: ../../dispatcher/router.rst:155 -msgid "" -"1. Router **CAN NOT** include itself 1. Routers **CAN NOT** be used for " -"circular including (router 1 include router 2, router 2 include router 3," -" router 3 include router 1)" -msgstr "" - -#: ../../dispatcher/router.rst:159 -msgid "Example:" -msgstr "" - -#: ../../dispatcher/router.rst:161 ../../dispatcher/router.rst:171 -msgid "module_2.py" -msgstr "" - -#: ../../dispatcher/router.rst:183 -msgid "How it works?" -msgstr "" - -#: ../../dispatcher/router.rst:185 -msgid "" -"For example, dispatcher has 2 routers, the last router also has one " -"nested router:" -msgstr "" - -#: ../../dispatcher/router.rst:-1 -msgid "Nested routers example" -msgstr "" - -#: ../../dispatcher/router.rst:190 -msgid "In this case update propagation flow will have form:" -msgstr "" - -#~ msgid "" -#~ "Can be attached directly or by " -#~ "import string in format " -#~ "\":\"" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/index.po b/docs/locale/en/LC_MESSAGES/index.po deleted file mode 100644 index beb8f6d9..00000000 --- a/docs/locale/en/LC_MESSAGES/index.po +++ /dev/null @@ -1,231 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../../README.rst:3 -msgid "aiogram |beta badge|" -msgstr "" - -#: ../../../README.rst:94 -msgid "Beta badge" -msgstr "" - -#: ../../../README.rst:6 -msgid "This version is still in development!" -msgstr "" - -#: ../../../README.rst:-1 -msgid "MIT License" -msgstr "" - -#: ../../../README.rst:-1 -msgid "PyPi status" -msgstr "" - -#: ../../../README.rst:-1 -msgid "PyPi Package Version" -msgstr "" - -#: ../../../README.rst:-1 -msgid "Downloads" -msgstr "" - -#: ../../../README.rst:-1 -msgid "Supported python versions" -msgstr "" - -#: ../../../README.rst:-1 -msgid "Telegram Bot API" -msgstr "" - -#: ../../../README.rst:-1 -msgid "Tests" -msgstr "" - -#: ../../../README.rst:-1 -msgid "Codecov" -msgstr "" - -#: ../../../README.rst:40 -msgid "" -"**aiogram** is a modern and fully asynchronous framework for `Telegram " -"Bot API `_ written in Python 3.8 " -"using `asyncio `_ and " -"`aiohttp `_." -msgstr "" - -#: ../../../README.rst:45 -msgid "Make your bots faster and more powerful!" -msgstr "" - -#: ../../../README.rst:50 -msgid "Documentation:" -msgstr "" - -#: ../../../README.rst:48 -msgid "🇺🇸 `English `_" -msgstr "" - -#: ../../../README.rst:49 -msgid "🇺🇦 `Ukrainian `_" -msgstr "" - -#: ../../../README.rst:54 -msgid "**Breaking News:**" -msgstr "" - -#: ../../../README.rst:56 -msgid "*aiogram* 3.0 has breaking changes." -msgstr "" - -#: ../../../README.rst:58 -msgid "It breaks backward compatibility by introducing new breaking changes!" -msgstr "" - -#: ../../../README.rst:61 -msgid "Features" -msgstr "" - -#: ../../../README.rst:63 -msgid "" -"Asynchronous (`asyncio docs " -"`_, :pep:`492`)" -msgstr "" - -#: ../../../README.rst:64 -msgid "" -"Has type hints (:pep:`484`) and can be used with `mypy `_" -msgstr "" - -#: ../../../README.rst:65 -msgid "Supports `PyPy `_" -msgstr "" - -#: ../../../README.rst:66 -msgid "" -"Supports `Telegram Bot API 6.6 `_ and" -" gets fast updates to the latest versions of the Bot API" -msgstr "" - -#: ../../../README.rst:67 -msgid "" -"Telegram Bot API integration code was `autogenerated " -"`_ and can be easily re-generated " -"when API gets updated" -msgstr "" - -#: ../../../README.rst:68 -msgid "Updates router (Blueprints)" -msgstr "" - -#: ../../../README.rst:69 -msgid "Has Finite State Machine" -msgstr "" - -#: ../../../README.rst:70 -msgid "" -"Uses powerful `magic filters " -"`" -msgstr "" - -#: ../../../README.rst:71 -msgid "Middlewares (incoming updates and API calls)" -msgstr "" - -#: ../../../README.rst:72 -msgid "" -"Provides `Replies into Webhook `_" -msgstr "" - -#: ../../../README.rst:73 -msgid "Integrated I18n/L10n support with GNU Gettext (or Fluent)" -msgstr "" - -#: ../../../README.rst:78 -msgid "" -"It is strongly advised that you have prior experience working with " -"`asyncio `_ before " -"beginning to use **aiogram**." -msgstr "" - -#: ../../../README.rst:82 -msgid "If you have any questions, you can visit our community chats on Telegram:" -msgstr "" - -#: ../../../README.rst:84 -msgid "🇺🇸 `@aiogram `_" -msgstr "" - -#: ../../../README.rst:85 -msgid "🇺🇦 `@aiogramua `_" -msgstr "" - -#: ../../../README.rst:86 -msgid "🇺🇿 `@aiogram_uz `_" -msgstr "" - -#: ../../../README.rst:87 -msgid "🇰🇿 `@aiogram_kz `_" -msgstr "" - -#: ../../../README.rst:88 -msgid "🇷🇺 `@aiogram_ru `_" -msgstr "" - -#: ../../../README.rst:89 -msgid "🇮🇷 `@aiogram_fa `_" -msgstr "" - -#: ../../../README.rst:90 -msgid "🇮🇹 `@aiogram_it `_" -msgstr "" - -#: ../../../README.rst:91 -msgid "🇧🇷 `@aiogram_br `_" -msgstr "" - -#: ../../index.rst:4 -msgid "Simple usage" -msgstr "" - -#: ../../index.rst:9 -msgid "Contents" -msgstr "" - -#~ msgid "Uses powerful :ref:`magic filters `" -#~ msgstr "" - -#~ msgid "" -#~ "Supports `Telegram Bot API 6.3 " -#~ "`_ and gets fast" -#~ " updates to the latest versions of" -#~ " the Bot API" -#~ msgstr "" - -#~ msgid "[Telegram] aiogram live" -#~ msgstr "" - -#~ msgid "" -#~ "Supports `Telegram Bot API 6.4 " -#~ "`_ and gets fast" -#~ " updates to the latest versions of" -#~ " the Bot API" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/install.po b/docs/locale/en/LC_MESSAGES/install.po deleted file mode 100644 index b0178fb7..00000000 --- a/docs/locale/en/LC_MESSAGES/install.po +++ /dev/null @@ -1,46 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../install.rst:3 -msgid "Installation" -msgstr "" - -#: ../../install.rst:6 -msgid "Stable (2.x)" -msgstr "" - -#: ../../install.rst:9 ../../install.rst:26 -msgid "From PyPI" -msgstr "" - -#: ../../install.rst:16 -msgid "From Arch Linux Repository" -msgstr "" - -#: ../../install.rst:23 -msgid "Development build (3.x)" -msgstr "" - -#: ../../install.rst:33 -msgid "From GitHub" -msgstr "" - -#: ../../install.rst:40 -msgid "From AUR" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/utils/callback_answer.po b/docs/locale/en/LC_MESSAGES/utils/callback_answer.po deleted file mode 100644 index daa3c973..00000000 --- a/docs/locale/en/LC_MESSAGES/utils/callback_answer.po +++ /dev/null @@ -1,204 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2023, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2023. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" - -#: ../../utils/callback_answer.rst:4 -msgid "Callback answer" -msgstr "" - -#: ../../utils/callback_answer.rst:6 -msgid "" -"Helper for callback query handlers, can be useful in bots with a lot of " -"callback handlers to automatically take answer to all requests." -msgstr "" - -#: ../../utils/callback_answer.rst:10 -msgid "Simple usage" -msgstr "" - -#: ../../utils/callback_answer.rst:12 -msgid "" -"For use, it is enough to register the inner middleware " -":class:`aiogram.utils.callback_answer.CallbackAnswerMiddleware` in " -"dispatcher or specific router:" -msgstr "" - -#: ../../utils/callback_answer.rst:18 -msgid "" -"After that all handled callback queries will be answered automatically " -"after processing the handler." -msgstr "" - -#: ../../utils/callback_answer.rst:21 -msgid "Advanced usage" -msgstr "" - -#: ../../utils/callback_answer.rst:23 -msgid "" -"In some cases you need to have some non-standard response parameters, " -"this can be done in several ways:" -msgstr "" - -#: ../../utils/callback_answer.rst:26 -msgid "Global defaults" -msgstr "" - -#: ../../utils/callback_answer.rst:28 -msgid "" -"Change default parameters while initializing middleware, for example " -"change answer to `pre` mode and text \"OK\":" -msgstr "" - -#: ../../utils/callback_answer.rst:35 -msgid "" -"Look at :class:`aiogram.utils.callback_answer.CallbackAnswerMiddleware` " -"to get all available parameters" -msgstr "" - -#: ../../utils/callback_answer.rst:39 -msgid "Handler specific" -msgstr "" - -#: ../../utils/callback_answer.rst:41 -msgid "" -"By using :ref:`flags ` you can change the behavior for specific " -"handler" -msgstr "" - -#: ../../utils/callback_answer.rst:50 -msgid "" -"Flag arguments is the same as in " -":class:`aiogram.utils.callback_answer.CallbackAnswerMiddleware` with " -"additional one :code:`disabled` to disable answer." -msgstr "" - -#: ../../utils/callback_answer.rst:54 -msgid "A special case" -msgstr "" - -#: ../../utils/callback_answer.rst:56 -msgid "" -"It is not always correct to answer the same in every case, so there is an" -" option to change the answer inside the handler. You can get an instance " -"of :class:`aiogram.utils.callback_answer.CallbackAnswer` object inside " -"handler and change whatever you want." -msgstr "" - -#: ../../utils/callback_answer.rst:61 -msgid "" -"Note that is impossible to change callback answer attributes when you use" -" :code:`pre=True` mode." -msgstr "" - -#: ../../utils/callback_answer.rst:76 -msgid "Combine that all at once" -msgstr "" - -#: ../../utils/callback_answer.rst:78 -msgid "" -"For example you want to answer in most of cases before handler with text " -"\"🤔\" but at some cases need to answer after the handler with custom " -"text, so you can do it:" -msgstr "" - -#: ../../utils/callback_answer.rst:94 -msgid "Description of objects" -msgstr "" - -#: aiogram.utils.callback_answer.CallbackAnswerMiddleware:1 of -msgid "Bases: :py:class:`~aiogram.dispatcher.middlewares.base.BaseMiddleware`" -msgstr "" - -#: aiogram.utils.callback_answer.CallbackAnswerMiddleware.__init__:1 of -msgid "" -"Inner middleware for callback query handlers, can be useful in bots with " -"a lot of callback handlers to automatically take answer to all requests" -msgstr "" - -#: aiogram.utils.callback_answer.CallbackAnswer.__init__ -#: aiogram.utils.callback_answer.CallbackAnswerMiddleware.__init__ of -msgid "Parameters" -msgstr "" - -#: aiogram.utils.callback_answer.CallbackAnswerMiddleware.__init__:4 of -msgid "send answer before execute handler" -msgstr "" - -#: aiogram.utils.callback_answer.CallbackAnswer.__init__:5 -#: aiogram.utils.callback_answer.CallbackAnswerMiddleware.__init__:5 of -msgid "answer with text" -msgstr "" - -#: aiogram.utils.callback_answer.CallbackAnswer.__init__:6 -#: aiogram.utils.callback_answer.CallbackAnswerMiddleware.__init__:6 of -msgid "show alert" -msgstr "" - -#: aiogram.utils.callback_answer.CallbackAnswer.__init__:7 -#: aiogram.utils.callback_answer.CallbackAnswerMiddleware.__init__:7 of -msgid "game url" -msgstr "" - -#: aiogram.utils.callback_answer.CallbackAnswer.__init__:8 -#: aiogram.utils.callback_answer.CallbackAnswerMiddleware.__init__:8 of -msgid "cache answer for some time" -msgstr "" - -#: aiogram.utils.callback_answer.CallbackAnswer:1 of -msgid "Bases: :py:class:`object`" -msgstr "" - -#: aiogram.utils.callback_answer.CallbackAnswer.__init__:1 of -msgid "Callback answer configuration" -msgstr "" - -#: aiogram.utils.callback_answer.CallbackAnswer.__init__:3 of -msgid "this request is already answered by middleware" -msgstr "" - -#: aiogram.utils.callback_answer.CallbackAnswer.__init__:4 of -msgid "answer will not be performed" -msgstr "" - -#: aiogram.utils.callback_answer.CallbackAnswer.disable:1 of -msgid "Deactivate answering for this handler" -msgstr "" - -#: aiogram.utils.callback_answer.CallbackAnswer.disabled:1 of -msgid "Indicates that automatic answer is disabled in this handler" -msgstr "" - -#: aiogram.utils.callback_answer.CallbackAnswer.answered:1 of -msgid "Indicates that request is already answered by middleware" -msgstr "" - -#: aiogram.utils.callback_answer.CallbackAnswer.text:1 of -msgid "Response text :return:" -msgstr "" - -#: aiogram.utils.callback_answer.CallbackAnswer.show_alert:1 of -msgid "Whether to display an alert" -msgstr "" - -#: aiogram.utils.callback_answer.CallbackAnswer.url:1 of -msgid "Game url" -msgstr "" - -#: aiogram.utils.callback_answer.CallbackAnswer.cache_time:1 of -msgid "Response cache time" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/utils/chat_action.po b/docs/locale/en/LC_MESSAGES/utils/chat_action.po deleted file mode 100644 index acbd8188..00000000 --- a/docs/locale/en/LC_MESSAGES/utils/chat_action.po +++ /dev/null @@ -1,146 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../utils/chat_action.rst:3 -msgid "Chat action sender" -msgstr "" - -#: ../../utils/chat_action.rst:6 -msgid "Sender" -msgstr "" - -#: aiogram.utils.chat_action.ChatActionSender:1 of -msgid "" -"This utility helps to automatically send chat action until long actions " -"is done to take acknowledge bot users the bot is doing something and not " -"crashed." -msgstr "" - -#: aiogram.utils.chat_action.ChatActionSender:4 of -msgid "Provides simply to use context manager." -msgstr "" - -#: aiogram.utils.chat_action.ChatActionSender:6 of -msgid "" -"Technically sender start background task with infinity loop which works " -"until action will be finished and sends the `chat action " -"`_ every 5 seconds." -msgstr "" - -#: aiogram.utils.chat_action.ChatActionSender.__init__ of -msgid "Parameters" -msgstr "" - -#: aiogram.utils.chat_action.ChatActionSender.__init__:1 of -msgid "target chat id" -msgstr "" - -#: aiogram.utils.chat_action.ChatActionSender.__init__:2 of -msgid "chat action type" -msgstr "" - -#: aiogram.utils.chat_action.ChatActionSender.__init__:3 of -msgid "interval between iterations" -msgstr "" - -#: aiogram.utils.chat_action.ChatActionSender.__init__:4 of -msgid "sleep before first iteration" -msgstr "" - -#: aiogram.utils.chat_action.ChatActionSender.__init__:5 of -msgid "instance of the bot, can be omitted from the context" -msgstr "" - -#: aiogram.utils.chat_action.ChatActionSender.choose_sticker:1 of -msgid "Create instance of the sender with `choose_sticker` action" -msgstr "" - -#: aiogram.utils.chat_action.ChatActionSender.find_location:1 of -msgid "Create instance of the sender with `find_location` action" -msgstr "" - -#: aiogram.utils.chat_action.ChatActionSender.record_video:1 of -msgid "Create instance of the sender with `record_video` action" -msgstr "" - -#: aiogram.utils.chat_action.ChatActionSender.record_video_note:1 of -msgid "Create instance of the sender with `record_video_note` action" -msgstr "" - -#: aiogram.utils.chat_action.ChatActionSender.record_voice:1 of -msgid "Create instance of the sender with `record_voice` action" -msgstr "" - -#: aiogram.utils.chat_action.ChatActionSender.typing:1 of -msgid "Create instance of the sender with `typing` action" -msgstr "" - -#: aiogram.utils.chat_action.ChatActionSender.upload_document:1 of -msgid "Create instance of the sender with `upload_document` action" -msgstr "" - -#: aiogram.utils.chat_action.ChatActionSender.upload_photo:1 of -msgid "Create instance of the sender with `upload_photo` action" -msgstr "" - -#: aiogram.utils.chat_action.ChatActionSender.upload_video:1 of -msgid "Create instance of the sender with `upload_video` action" -msgstr "" - -#: aiogram.utils.chat_action.ChatActionSender.upload_video_note:1 of -msgid "Create instance of the sender with `upload_video_note` action" -msgstr "" - -#: aiogram.utils.chat_action.ChatActionSender.upload_voice:1 of -msgid "Create instance of the sender with `upload_voice` action" -msgstr "" - -#: ../../utils/chat_action.rst:12 ../../utils/chat_action.rst:29 -msgid "Usage" -msgstr "" - -#: ../../utils/chat_action.rst:23 -msgid "Middleware" -msgstr "" - -#: aiogram.utils.chat_action.ChatActionMiddleware:1 of -msgid "Helps to automatically use chat action sender for all message handlers" -msgstr "" - -#: ../../utils/chat_action.rst:31 -msgid "Before usa should be registered for the `message` event" -msgstr "" - -#: ../../utils/chat_action.rst:37 -msgid "" -"After this action all handlers which works longer than `initial_sleep` " -"will produce the '`typing`' chat action." -msgstr "" - -#: ../../utils/chat_action.rst:39 -msgid "Also sender can be customized via flags feature for particular handler." -msgstr "" - -#: ../../utils/chat_action.rst:41 -msgid "Change only action type:" -msgstr "" - -#: ../../utils/chat_action.rst:50 -msgid "Change sender configuration:" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/utils/i18n.po b/docs/locale/en/LC_MESSAGES/utils/i18n.po deleted file mode 100644 index de674640..00000000 --- a/docs/locale/en/LC_MESSAGES/utils/i18n.po +++ /dev/null @@ -1,339 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-14 19:29+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../utils/i18n.rst:3 -msgid "Translation" -msgstr "" - -#: ../../utils/i18n.rst:5 -msgid "" -"In order to make you bot translatable you have to add a minimal number of" -" hooks to your Python code." -msgstr "" - -#: ../../utils/i18n.rst:7 -msgid "These hooks are called translation strings." -msgstr "" - -#: ../../utils/i18n.rst:9 -msgid "" -"The aiogram translation utils is build on top of `GNU gettext Python " -"module `_ and `Babel " -"library `_." -msgstr "" - -#: ../../utils/i18n.rst:13 -msgid "Installation" -msgstr "" - -#: ../../utils/i18n.rst:15 -msgid "" -"Babel is required to make simple way to extract translation strings from " -"your code" -msgstr "" - -#: ../../utils/i18n.rst:17 -msgid "Can be installed from pip directly:" -msgstr "" - -#: ../../utils/i18n.rst:24 -msgid "or as `aiogram` extra dependency:" -msgstr "" - -#: ../../utils/i18n.rst:32 -msgid "Make messages translatable" -msgstr "" - -#: ../../utils/i18n.rst:34 -msgid "" -"In order to gettext need to know what the strings should be translated " -"you will need to write translation strings." -msgstr "" - -#: ../../utils/i18n.rst:36 -msgid "For example:" -msgstr "" - -#: ../../utils/i18n.rst:54 -msgid "" -"f-strings can't be used as translations string because any dynamic " -"variables should be added to message after getting translated message" -msgstr "" - -#: ../../utils/i18n.rst:57 -msgid "" -"Also if you want to use translated string in keyword- or magic- filters " -"you will need to use lazy gettext calls:" -msgstr "" - -#: ../../utils/i18n.rst:72 -msgid "" -"Lazy gettext calls should always be used when the current language is not" -" know at the moment" -msgstr "" - -#: ../../utils/i18n.rst:77 -msgid "" -"Lazy gettext can't be used as value for API methods or any Telegram " -"Object (like " -":class:`aiogram.types.inline_keyboard_button.InlineKeyboardButton` or " -"etc.)" -msgstr "" - -#: ../../utils/i18n.rst:80 -msgid "Configuring engine" -msgstr "" - -#: ../../utils/i18n.rst:82 -msgid "" -"After you messages is already done to use gettext your bot should know " -"how to detect user language" -msgstr "" - -#: ../../utils/i18n.rst:84 -msgid "" -"On top of your application the instance of " -":class:`aiogram.utils.i18n.I18n` should be created" -msgstr "" - -#: ../../utils/i18n.rst:92 -msgid "" -"After that you will need to choose one of builtin I18n middleware or " -"write your own." -msgstr "" - -#: ../../utils/i18n.rst:94 -msgid "Builtin middlewares:" -msgstr "" - -#: ../../utils/i18n.rst:98 -msgid "SimpleI18nMiddleware" -msgstr "" - -#: aiogram.utils.i18n.middleware.SimpleI18nMiddleware:1 of -msgid "Simple I18n middleware." -msgstr "" - -#: aiogram.utils.i18n.middleware.SimpleI18nMiddleware:3 of -msgid "Chooses language code from the User object received in event" -msgstr "" - -#: aiogram.utils.i18n.middleware.ConstI18nMiddleware.__init__:1 -#: aiogram.utils.i18n.middleware.FSMI18nMiddleware.__init__:1 -#: aiogram.utils.i18n.middleware.I18nMiddleware.__init__:1 -#: aiogram.utils.i18n.middleware.SimpleI18nMiddleware.__init__:1 of -msgid "Create an instance of middleware" -msgstr "" - -#: aiogram.utils.i18n.middleware.ConstI18nMiddleware.__init__ -#: aiogram.utils.i18n.middleware.FSMI18nMiddleware.__init__ -#: aiogram.utils.i18n.middleware.FSMI18nMiddleware.set_locale -#: aiogram.utils.i18n.middleware.I18nMiddleware.__init__ -#: aiogram.utils.i18n.middleware.I18nMiddleware.get_locale -#: aiogram.utils.i18n.middleware.I18nMiddleware.setup -#: aiogram.utils.i18n.middleware.SimpleI18nMiddleware.__init__ of -msgid "Parameters" -msgstr "" - -#: aiogram.utils.i18n.middleware.ConstI18nMiddleware.__init__:3 -#: aiogram.utils.i18n.middleware.FSMI18nMiddleware.__init__:3 -#: aiogram.utils.i18n.middleware.I18nMiddleware.__init__:3 -#: aiogram.utils.i18n.middleware.SimpleI18nMiddleware.__init__:3 of -msgid "instance of I18n" -msgstr "" - -#: aiogram.utils.i18n.middleware.ConstI18nMiddleware.__init__:4 -#: aiogram.utils.i18n.middleware.FSMI18nMiddleware.__init__:4 -#: aiogram.utils.i18n.middleware.I18nMiddleware.__init__:4 -#: aiogram.utils.i18n.middleware.SimpleI18nMiddleware.__init__:4 of -msgid "context key for I18n instance" -msgstr "" - -#: aiogram.utils.i18n.middleware.ConstI18nMiddleware.__init__:5 -#: aiogram.utils.i18n.middleware.FSMI18nMiddleware.__init__:5 -#: aiogram.utils.i18n.middleware.I18nMiddleware.__init__:5 -#: aiogram.utils.i18n.middleware.SimpleI18nMiddleware.__init__:5 of -msgid "context key for this middleware" -msgstr "" - -#: ../../utils/i18n.rst:104 -msgid "ConstI18nMiddleware" -msgstr "" - -#: aiogram.utils.i18n.middleware.ConstI18nMiddleware:1 of -msgid "Const middleware chooses statically defined locale" -msgstr "" - -#: ../../utils/i18n.rst:110 -msgid "FSMI18nMiddleware" -msgstr "" - -#: aiogram.utils.i18n.middleware.FSMI18nMiddleware:1 of -msgid "This middleware stores locale in the FSM storage" -msgstr "" - -#: aiogram.utils.i18n.middleware.FSMI18nMiddleware.set_locale:1 of -msgid "Write new locale to the storage" -msgstr "" - -#: aiogram.utils.i18n.middleware.FSMI18nMiddleware.set_locale:3 of -msgid "instance of FSMContext" -msgstr "" - -#: aiogram.utils.i18n.middleware.FSMI18nMiddleware.set_locale:4 of -msgid "new locale" -msgstr "" - -#: ../../utils/i18n.rst:117 -msgid "I18nMiddleware" -msgstr "" - -#: ../../utils/i18n.rst:119 -msgid "or define you own based on abstract I18nMiddleware middleware:" -msgstr "" - -#: aiogram.utils.i18n.middleware.I18nMiddleware:1 of -msgid "Abstract I18n middleware." -msgstr "" - -#: aiogram.utils.i18n.middleware.I18nMiddleware.get_locale:1 of -msgid "Detect current user locale based on event and context." -msgstr "" - -#: aiogram.utils.i18n.middleware.I18nMiddleware.get_locale:3 of -msgid "**This method must be defined in child classes**" -msgstr "" - -#: aiogram.utils.i18n.middleware.I18nMiddleware.get_locale -#: aiogram.utils.i18n.middleware.I18nMiddleware.setup of -msgid "Returns" -msgstr "" - -#: aiogram.utils.i18n.middleware.I18nMiddleware.setup:1 of -msgid "Register middleware for all events in the Router" -msgstr "" - -#: ../../utils/i18n.rst:126 -msgid "Deal with Babel" -msgstr "" - -#: ../../utils/i18n.rst:129 -msgid "Step 1 Extract messages" -msgstr "" - -#: ../../utils/i18n.rst:136 -msgid "" -"Here is :code:`--input-dirs=.` - path to code and the " -":code:`locales/messages.pot` is template where messages will be extracted" -" and `messages` is translation domain." -msgstr "" - -#: ../../utils/i18n.rst:141 -msgid "Some useful options:" -msgstr "" - -#: ../../utils/i18n.rst:143 -msgid "Extract texts with pluralization support :code:`-k __:1,2`" -msgstr "" - -#: ../../utils/i18n.rst:144 -msgid "" -"Add comments for translators, you can use another tag if you want (TR) " -":code:`--add-comments=NOTE`" -msgstr "" - -#: ../../utils/i18n.rst:145 -msgid "Disable comments with string location in code :code:`--no-location`" -msgstr "" - -#: ../../utils/i18n.rst:146 -msgid "Set project name :code:`--project=MySuperBot`" -msgstr "" - -#: ../../utils/i18n.rst:147 -msgid "Set version :code:`--version=2.2`" -msgstr "" - -#: ../../utils/i18n.rst:151 -msgid "Step 2: Init language" -msgstr "" - -#: ../../utils/i18n.rst:157 -msgid ":code:`-i locales/messages.pot` - pre-generated template" -msgstr "" - -#: ../../utils/i18n.rst:158 -msgid ":code:`-d locales` - translations directory" -msgstr "" - -#: ../../utils/i18n.rst:159 -msgid ":code:`-D messages` - translations domain" -msgstr "" - -#: ../../utils/i18n.rst:160 -msgid "" -":code:`-l en` - language. Can be changed to any other valid language code" -" (For example :code:`-l uk` for ukrainian language)" -msgstr "" - -#: ../../utils/i18n.rst:164 -msgid "Step 3: Translate texts" -msgstr "" - -#: ../../utils/i18n.rst:166 -msgid "" -"To open .po file you can use basic text editor or any PO editor, e.g. " -"`Poedit `_" -msgstr "" - -#: ../../utils/i18n.rst:168 -msgid "" -"Just open the file named " -":code:`locales/{language}/LC_MESSAGES/messages.po` and write translations" -msgstr "" - -#: ../../utils/i18n.rst:171 -msgid "Step 4: Compile translations" -msgstr "" - -#: ../../utils/i18n.rst:179 -msgid "Step 5: Updating messages" -msgstr "" - -#: ../../utils/i18n.rst:181 -msgid "When you change the code of your bot you need to update po & mo files" -msgstr "" - -#: ../../utils/i18n.rst:183 -msgid "Step 5.1: regenerate pot file: command from step 1" -msgstr "" - -#: ../../utils/i18n.rst:187 -msgid "Step 5.2: update po files" -msgstr "" - -#: ../../utils/i18n.rst:189 -msgid "" -"Step 5.3: update your translations: location and tools you know from step" -" 3" -msgstr "" - -#: ../../utils/i18n.rst:190 -msgid "Step 5.4: compile mo files: command from step 4" -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/utils/keyboard.po b/docs/locale/en/LC_MESSAGES/utils/keyboard.po deleted file mode 100644 index f550df18..00000000 --- a/docs/locale/en/LC_MESSAGES/utils/keyboard.po +++ /dev/null @@ -1,134 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-07 23:24+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../utils/keyboard.rst:3 -msgid "Keyboard builder" -msgstr "" - -#: ../../utils/keyboard.rst:5 -msgid "Keyboard builder helps to dynamically generate markup." -msgstr "" - -#: ../../utils/keyboard.rst:9 -msgid "" -"Note that if you have static markup, it's best to define it explicitly " -"rather than using builder, but if you have dynamic markup configuration, " -"feel free to use builder as you wish." -msgstr "" - -#: ../../utils/keyboard.rst:14 -msgid "Usage example" -msgstr "" - -#: ../../utils/keyboard.rst:29 -msgid "Base builder" -msgstr "" - -#: aiogram.utils.keyboard.ReplyKeyboardBuilder:1 of -msgid "Reply keyboard builder inherits all methods from generic builder" -msgstr "" - -#: aiogram.utils.keyboard.KeyboardBuilder.add:1 of -msgid "Add one or many buttons to markup." -msgstr "" - -#: aiogram.utils.keyboard.KeyboardBuilder.add -#: aiogram.utils.keyboard.KeyboardBuilder.adjust -#: aiogram.utils.keyboard.KeyboardBuilder.row of -msgid "Parameters" -msgstr "" - -#: aiogram.utils.keyboard.KeyboardBuilder.add -#: aiogram.utils.keyboard.KeyboardBuilder.adjust -#: aiogram.utils.keyboard.KeyboardBuilder.export -#: aiogram.utils.keyboard.KeyboardBuilder.row -#: aiogram.utils.keyboard.ReplyKeyboardBuilder.buttons -#: aiogram.utils.keyboard.ReplyKeyboardBuilder.copy of -msgid "Returns" -msgstr "" - -#: aiogram.utils.keyboard.KeyboardBuilder.adjust:1 of -msgid "Adjust previously added buttons to specific row sizes." -msgstr "" - -#: aiogram.utils.keyboard.KeyboardBuilder.adjust:3 of -msgid "" -"By default, when the sum of passed sizes is lower than buttons count the " -"last one size will be used for tail of the markup. If repeat=True is " -"passed - all sizes will be cycled when available more buttons count than " -"all sizes" -msgstr "" - -#: aiogram.utils.keyboard.ReplyKeyboardBuilder.buttons:1 of -msgid "Get flatten set of all buttons" -msgstr "" - -#: aiogram.utils.keyboard.ReplyKeyboardBuilder.copy:1 of -msgid "Make full copy of current builder with markup" -msgstr "" - -#: aiogram.utils.keyboard.KeyboardBuilder.export:1 of -msgid "Export configured markup as list of lists of buttons" -msgstr "" - -#: aiogram.utils.keyboard.KeyboardBuilder.row:1 of -msgid "Add row to markup" -msgstr "" - -#: aiogram.utils.keyboard.KeyboardBuilder.row:3 of -msgid "When too much buttons is passed it will be separated to many rows" -msgstr "" - -#: ../../utils/keyboard.rst:35 -msgid "Inline Keyboard" -msgstr "" - -#: aiogram.utils.keyboard.InlineKeyboardBuilder:1 of -msgid "Inline keyboard builder inherits all methods from generic builder" -msgstr "" - -#: ../../utils/keyboard.rst:43 -msgid "Add new inline button to markup" -msgstr "" - -#: ../../utils/keyboard.rst:48 -msgid "Construct an InlineKeyboardMarkup" -msgstr "" - -#: ../../utils/keyboard.rst:51 -msgid "Reply Keyboard" -msgstr "" - -#: ../../utils/keyboard.rst:59 -msgid "Add new button to markup" -msgstr "" - -#: ../../utils/keyboard.rst:64 -msgid "Construct an ReplyKeyboardMarkup" -msgstr "" - -#~ msgid "" -#~ "By default when the sum of passed" -#~ " sizes is lower than buttons count" -#~ " the last one size will be used" -#~ " for tail of the markup. If " -#~ "repeat=True is passed - all sizes " -#~ "will be cycled when available more " -#~ "buttons count than all sizes" -#~ msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/utils/web_app.po b/docs/locale/en/LC_MESSAGES/utils/web_app.po deleted file mode 100644 index b4732c62..00000000 --- a/docs/locale/en/LC_MESSAGES/utils/web_app.po +++ /dev/null @@ -1,209 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team -# This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: aiogram \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" - -#: ../../utils/web_app.rst:3 -msgid "WebApp" -msgstr "" - -#: ../../utils/web_app.rst:5 -msgid "" -"Telegram Bot API 6.0 announces a revolution in the development of " -"chatbots using WebApp feature." -msgstr "" - -#: ../../utils/web_app.rst:7 -msgid "" -"You can read more details on it in the official `blog " -"`_ and " -"`documentation `_." -msgstr "" - -#: ../../utils/web_app.rst:10 -msgid "" -"`aiogram` implements simple utils to remove headache with the data " -"validation from Telegram WebApp on the backend side." -msgstr "" - -#: ../../utils/web_app.rst:13 -msgid "Usage" -msgstr "" - -#: ../../utils/web_app.rst:15 -msgid "" -"For example from frontend you will pass :code:`application/x-www-form-" -"urlencoded` POST request with :code:`_auth` field in body and wants to " -"return User info inside response as :code:`application/json`" -msgstr "" - -#: ../../utils/web_app.rst:35 -msgid "Functions" -msgstr "" - -#: aiogram.utils.web_app.check_webapp_signature:1 of -msgid "Check incoming WebApp init data signature" -msgstr "" - -#: aiogram.utils.web_app.check_webapp_signature:3 of -msgid "" -"Source: https://core.telegram.org/bots/webapps#validating-data-received-" -"via-the-web-app" -msgstr "" - -#: aiogram.utils.web_app.check_webapp_signature -#: aiogram.utils.web_app.parse_webapp_init_data -#: aiogram.utils.web_app.safe_parse_webapp_init_data of -msgid "Parameters" -msgstr "" - -#: aiogram.utils.web_app.check_webapp_signature:5 of -msgid "bot Token" -msgstr "" - -#: aiogram.utils.web_app.check_webapp_signature:6 of -msgid "data from frontend to be validated" -msgstr "" - -#: aiogram.utils.web_app.check_webapp_signature -#: aiogram.utils.web_app.parse_webapp_init_data -#: aiogram.utils.web_app.safe_parse_webapp_init_data of -msgid "Returns" -msgstr "" - -#: aiogram.utils.web_app.parse_webapp_init_data:1 of -msgid "Parse WebApp init data and return it as WebAppInitData object" -msgstr "" - -#: aiogram.utils.web_app.parse_webapp_init_data:3 of -msgid "" -"This method doesn't make any security check, so you shall not trust to " -"this data, use :code:`safe_parse_webapp_init_data` instead." -msgstr "" - -#: aiogram.utils.web_app.parse_webapp_init_data:6 of -msgid "data from frontend to be parsed" -msgstr "" - -#: aiogram.utils.web_app.safe_parse_webapp_init_data:1 of -msgid "Validate raw WebApp init data and return it as WebAppInitData object" -msgstr "" - -#: aiogram.utils.web_app.safe_parse_webapp_init_data:3 of -msgid "Raise :obj:`ValueError` when data is invalid" -msgstr "" - -#: aiogram.utils.web_app.safe_parse_webapp_init_data:5 of -msgid "bot token" -msgstr "" - -#: aiogram.utils.web_app.safe_parse_webapp_init_data:6 of -msgid "data from frontend to be parsed and validated" -msgstr "" - -#: ../../utils/web_app.rst:45 -msgid "Types" -msgstr "" - -#: aiogram.utils.web_app.WebAppInitData:1 of -msgid "" -"This object contains data that is transferred to the Web App when it is " -"opened. It is empty if the Web App was launched from a keyboard button." -msgstr "" - -#: aiogram.utils.web_app.WebAppInitData:3 of -msgid "Source: https://core.telegram.org/bots/webapps#webappinitdata" -msgstr "" - -#: ../../docstring aiogram.utils.web_app.WebAppInitData.query_id:1 of -msgid "" -"A unique identifier for the Web App session, required for sending " -"messages via the answerWebAppQuery method." -msgstr "" - -#: ../../docstring aiogram.utils.web_app.WebAppInitData.user:1 of -msgid "An object containing data about the current user." -msgstr "" - -#: ../../docstring aiogram.utils.web_app.WebAppInitData.receiver:1 of -msgid "" -"An object containing data about the chat partner of the current user in " -"the chat where the bot was launched via the attachment menu. Returned " -"only for Web Apps launched via the attachment menu." -msgstr "" - -#: ../../docstring aiogram.utils.web_app.WebAppInitData.start_param:1 of -msgid "" -"The value of the startattach parameter, passed via link. Only returned " -"for Web Apps when launched from the attachment menu via link. The value " -"of the start_param parameter will also be passed in the GET-parameter " -"tgWebAppStartParam, so the Web App can load the correct interface right " -"away." -msgstr "" - -#: ../../docstring aiogram.utils.web_app.WebAppInitData.auth_date:1 of -msgid "Unix time when the form was opened." -msgstr "" - -#: ../../docstring aiogram.utils.web_app.WebAppInitData.hash:1 of -msgid "" -"A hash of all passed parameters, which the bot server can use to check " -"their validity." -msgstr "" - -#: aiogram.utils.web_app.WebAppUser:1 of -msgid "This object contains the data of the Web App user." -msgstr "" - -#: aiogram.utils.web_app.WebAppUser:3 of -msgid "Source: https://core.telegram.org/bots/webapps#webappuser" -msgstr "" - -#: ../../docstring aiogram.utils.web_app.WebAppUser.id:1 of -msgid "" -"A unique identifier for the user or bot. This number may have more than " -"32 significant bits and some programming languages may have " -"difficulty/silent defects in interpreting it. It has at most 52 " -"significant bits, so a 64-bit integer or a double-precision float type is" -" safe for storing this identifier." -msgstr "" - -#: ../../docstring aiogram.utils.web_app.WebAppUser.is_bot:1 of -msgid "True, if this user is a bot. Returns in the receiver field only." -msgstr "" - -#: ../../docstring aiogram.utils.web_app.WebAppUser.first_name:1 of -msgid "First name of the user or bot." -msgstr "" - -#: ../../docstring aiogram.utils.web_app.WebAppUser.last_name:1 of -msgid "Last name of the user or bot." -msgstr "" - -#: ../../docstring aiogram.utils.web_app.WebAppUser.username:1 of -msgid "Username of the user or bot." -msgstr "" - -#: ../../docstring aiogram.utils.web_app.WebAppUser.language_code:1 of -msgid "IETF language tag of the user's language. Returns in user field only." -msgstr "" - -#: ../../docstring aiogram.utils.web_app.WebAppUser.photo_url:1 of -msgid "" -"URL of the user’s profile photo. The photo can be in .jpeg or .svg " -"formats. Only returned for Web Apps launched from the attachment menu." -msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/bot.po b/docs/locale/uk_UA/LC_MESSAGES/api/bot.po index 78be340f..c65e071f 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/bot.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/bot.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-01 20:49+0300\n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -47,9 +47,7 @@ msgid "" msgstr "" #: aiogram.client.bot.Bot:1 of -msgid "" -"Bases: :py:class:`~aiogram.utils.mixins.ContextInstanceMixin`\\ " -"[:py:class:`Bot`]" +msgid "Bases: :py:class:`object`" msgstr "" #: aiogram.client.bot.Bot.__init__:1 of @@ -110,6 +108,10 @@ msgstr "" msgid "Generate bot context" msgstr "" +#: aiogram.client.bot.Bot.context:3 of +msgid "close session on exit" +msgstr "" + #: aiogram.client.bot.Bot.me:1 of msgid "Cached alias for getMe method" msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/download_file.po b/docs/locale/uk_UA/LC_MESSAGES/api/download_file.po index 11675c94..c841be44 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/download_file.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/download_file.po @@ -217,6 +217,3 @@ msgstr "" #: ../../api/download_file.rst:93 msgid "Example:" msgstr "Приклад:" - -#~ msgid "Bot class" -#~ msgstr "Bot class" diff --git a/docs/locale/en/LC_MESSAGES/api/enums/sticker_format.po b/docs/locale/uk_UA/LC_MESSAGES/api/enums/currency.po similarity index 60% rename from docs/locale/en/LC_MESSAGES/api/enums/sticker_format.po rename to docs/locale/uk_UA/LC_MESSAGES/api/enums/currency.po index 57a8b198..b7a6d732 100644 --- a/docs/locale/en/LC_MESSAGES/api/enums/sticker_format.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/enums/currency.po @@ -8,23 +8,23 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" +"POT-Creation-Date: 2023-08-06 16:52+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" +"Generated-By: Babel 2.12.1\n" -#: ../../api/enums/sticker_format.rst:3 -msgid "StickerFormat" +#: ../../api/enums/currency.rst:3 +msgid "Currency" msgstr "" -#: aiogram.enums.sticker_format.StickerFormat:1 of -msgid "Format of the sticker" +#: aiogram.enums.currency.Currency:1 of +msgid "Currencies supported by Telegram Bot API" msgstr "" -#: aiogram.enums.sticker_format.StickerFormat:3 of -msgid "Source: https://core.telegram.org/bots/api#createnewstickerset" +#: aiogram.enums.currency.Currency:3 of +msgid "Source: https://core.telegram.org/bots/payments#supported-currencies" msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/types/bot_description.po b/docs/locale/uk_UA/LC_MESSAGES/api/enums/encrypted_passport_element.po similarity index 51% rename from docs/locale/en/LC_MESSAGES/api/types/bot_description.po rename to docs/locale/uk_UA/LC_MESSAGES/api/enums/encrypted_passport_element.po index 2f295229..c9fd2760 100644 --- a/docs/locale/en/LC_MESSAGES/api/types/bot_description.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/enums/encrypted_passport_element.po @@ -8,28 +8,23 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" +"Generated-By: Babel 2.12.1\n" -#: ../../api/types/bot_description.rst:3 -msgid "BotDescription" +#: ../../api/enums/encrypted_passport_element.rst:3 +msgid "EncryptedPassportElement" msgstr "" -#: aiogram.types.bot_description.BotDescription:1 of -msgid "This object represents the bot's description." +#: aiogram.enums.encrypted_passport_element.EncryptedPassportElement:1 of +msgid "This object represents type of encrypted passport element." msgstr "" -#: aiogram.types.bot_description.BotDescription:3 of -msgid "Source: https://core.telegram.org/bots/api#botdescription" -msgstr "" - -#: ../../docstring aiogram.types.bot_description.BotDescription.description:1 -#: of -msgid "The bot's description" +#: aiogram.enums.encrypted_passport_element.EncryptedPassportElement:3 of +msgid "Source: https://core.telegram.org/bots/api#encryptedpassportelement" msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/enums/index.po b/docs/locale/uk_UA/LC_MESSAGES/api/enums/index.po index 0bab4898..78c7f5b5 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/enums/index.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/enums/index.po @@ -24,6 +24,3 @@ msgstr "" #: ../../api/enums/index.rst:5 msgid "Here is list of all available enums:" msgstr "Ось список усіх доступних переліків:" - -#~ msgid "Types" -#~ msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/enums/inline_query_result_type.po b/docs/locale/uk_UA/LC_MESSAGES/api/enums/inline_query_result_type.po index 6b275e0f..0a534fc6 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/enums/inline_query_result_type.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/enums/inline_query_result_type.po @@ -29,6 +29,3 @@ msgstr "" #, fuzzy msgid "Source: https://core.telegram.org/bots/api#inlinequeryresult" msgstr "Джерело: https://core.telegram.org/bots/api#maskposition" - -#~ msgid "The part of the face relative to which the mask should be placed." -#~ msgstr "Частина обличчя, щодо якої слід розмістити маску." diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/enums/passport_element_error_type.po b/docs/locale/uk_UA/LC_MESSAGES/api/enums/passport_element_error_type.po new file mode 100644 index 00000000..285d6c8a --- /dev/null +++ b/docs/locale/uk_UA/LC_MESSAGES/api/enums/passport_element_error_type.po @@ -0,0 +1,30 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2023, aiogram Team +# This file is distributed under the same license as the aiogram package. +# FIRST AUTHOR , 2023. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: aiogram \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.12.1\n" + +#: ../../api/enums/passport_element_error_type.rst:3 +msgid "PassportElementErrorType" +msgstr "" + +#: aiogram.enums.passport_element_error_type.PassportElementErrorType:1 of +msgid "This object represents a passport element error type." +msgstr "" + +#: aiogram.enums.passport_element_error_type.PassportElementErrorType:3 of +msgid "Source: https://core.telegram.org/bots/api#passportelementerror" +msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/answer_pre_checkout_query.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/answer_pre_checkout_query.po index 6447522c..0686720e 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/answer_pre_checkout_query.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/answer_pre_checkout_query.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" +"POT-Creation-Date: 2023-08-06 16:52+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/methods/answer_pre_checkout_query.rst:3 msgid "answerPreCheckoutQuery" @@ -65,36 +65,44 @@ msgid "" " user." msgstr "" -#: ../../api/methods/answer_pre_checkout_query.rst:14 +#: ../../api/methods/answer_pre_checkout_query.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/answer_pre_checkout_query.rst:17 +#: ../../api/methods/answer_pre_checkout_query.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/answer_pre_checkout_query.rst:25 +#: ../../api/methods/answer_pre_checkout_query.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/answer_pre_checkout_query.rst:27 +#: ../../api/methods/answer_pre_checkout_query.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/answer_pre_checkout_query.rst:29 +#: ../../api/methods/answer_pre_checkout_query.rst:30 msgid "" ":code:`from aiogram.methods.answer_pre_checkout_query import " "AnswerPreCheckoutQuery`" msgstr "" -#: ../../api/methods/answer_pre_checkout_query.rst:30 +#: ../../api/methods/answer_pre_checkout_query.rst:31 msgid "alias: :code:`from aiogram.methods import AnswerPreCheckoutQuery`" msgstr "" -#: ../../api/methods/answer_pre_checkout_query.rst:33 +#: ../../api/methods/answer_pre_checkout_query.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/answer_pre_checkout_query.rst:40 +#: ../../api/methods/answer_pre_checkout_query.rst:41 msgid "As reply into Webhook in handler" msgstr "" + +#: ../../api/methods/answer_pre_checkout_query.rst:49 +msgid "As shortcut from received object" +msgstr "" + +#: ../../api/methods/answer_pre_checkout_query.rst:51 +msgid ":meth:`aiogram.types.pre_checkout_query.PreCheckoutQuery.answer`" +msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/answer_shipping_query.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/answer_shipping_query.po index f1a61600..418b9c67 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/answer_shipping_query.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/answer_shipping_query.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" +"POT-Creation-Date: 2023-08-06 16:52+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/methods/answer_shipping_query.rst:3 msgid "answerShippingQuery" @@ -69,36 +69,44 @@ msgid "" "this message to the user." msgstr "" -#: ../../api/methods/answer_shipping_query.rst:14 +#: ../../api/methods/answer_shipping_query.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/answer_shipping_query.rst:17 +#: ../../api/methods/answer_shipping_query.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/answer_shipping_query.rst:25 +#: ../../api/methods/answer_shipping_query.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/answer_shipping_query.rst:27 +#: ../../api/methods/answer_shipping_query.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/answer_shipping_query.rst:29 +#: ../../api/methods/answer_shipping_query.rst:30 msgid "" ":code:`from aiogram.methods.answer_shipping_query import " "AnswerShippingQuery`" msgstr "" -#: ../../api/methods/answer_shipping_query.rst:30 +#: ../../api/methods/answer_shipping_query.rst:31 msgid "alias: :code:`from aiogram.methods import AnswerShippingQuery`" msgstr "" -#: ../../api/methods/answer_shipping_query.rst:33 +#: ../../api/methods/answer_shipping_query.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/answer_shipping_query.rst:40 +#: ../../api/methods/answer_shipping_query.rst:41 msgid "As reply into Webhook in handler" msgstr "" + +#: ../../api/methods/answer_shipping_query.rst:49 +msgid "As shortcut from received object" +msgstr "" + +#: ../../api/methods/answer_shipping_query.rst:51 +msgid ":meth:`aiogram.types.shipping_query.ShippingQuery.answer`" +msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/ban_chat_member.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/ban_chat_member.po index 487b0d38..ed3552d1 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/ban_chat_member.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/ban_chat_member.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" +"POT-Creation-Date: 2023-10-08 19:04+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/methods/ban_chat_member.rst:3 msgid "banChatMember" @@ -52,7 +52,7 @@ msgstr "" #: ../../docstring aiogram.methods.ban_chat_member.BanChatMember.until_date:1 #: of msgid "" -"Date when the user will be unbanned, unix time. If user is banned for " +"Date when the user will be unbanned; Unix time. If user is banned for " "more than 366 days or less than 30 seconds from the current time they are" " considered to be banned forever. Applied for supergroups and channels " "only." @@ -67,42 +67,42 @@ msgid "" ":code:`True` for supergroups and channels." msgstr "" -#: ../../api/methods/ban_chat_member.rst:14 +#: ../../api/methods/ban_chat_member.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/ban_chat_member.rst:17 +#: ../../api/methods/ban_chat_member.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/ban_chat_member.rst:25 +#: ../../api/methods/ban_chat_member.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/ban_chat_member.rst:27 +#: ../../api/methods/ban_chat_member.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/ban_chat_member.rst:29 +#: ../../api/methods/ban_chat_member.rst:30 msgid ":code:`from aiogram.methods.ban_chat_member import BanChatMember`" msgstr "" -#: ../../api/methods/ban_chat_member.rst:30 +#: ../../api/methods/ban_chat_member.rst:31 msgid "alias: :code:`from aiogram.methods import BanChatMember`" msgstr "" -#: ../../api/methods/ban_chat_member.rst:33 +#: ../../api/methods/ban_chat_member.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/ban_chat_member.rst:40 +#: ../../api/methods/ban_chat_member.rst:41 msgid "As reply into Webhook in handler" msgstr "" -#: ../../api/methods/ban_chat_member.rst:48 +#: ../../api/methods/ban_chat_member.rst:49 msgid "As shortcut from received object" msgstr "" -#: ../../api/methods/ban_chat_member.rst:50 +#: ../../api/methods/ban_chat_member.rst:51 msgid ":meth:`aiogram.types.chat.Chat.ban`" msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/edit_message_reply_markup.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/edit_message_reply_markup.po index d8a3b25d..b704dd6d 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/edit_message_reply_markup.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/edit_message_reply_markup.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" +"POT-Creation-Date: 2023-08-06 16:52+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/methods/edit_message_reply_markup.rst:3 msgid "editMessageReplyMarkup" @@ -70,48 +70,52 @@ msgid "" "`_." msgstr "" -#: ../../api/methods/edit_message_reply_markup.rst:14 +#: ../../api/methods/edit_message_reply_markup.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/edit_message_reply_markup.rst:17 +#: ../../api/methods/edit_message_reply_markup.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/edit_message_reply_markup.rst:25 +#: ../../api/methods/edit_message_reply_markup.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/edit_message_reply_markup.rst:27 +#: ../../api/methods/edit_message_reply_markup.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/edit_message_reply_markup.rst:29 +#: ../../api/methods/edit_message_reply_markup.rst:30 msgid "" ":code:`from aiogram.methods.edit_message_reply_markup import " "EditMessageReplyMarkup`" msgstr "" -#: ../../api/methods/edit_message_reply_markup.rst:30 +#: ../../api/methods/edit_message_reply_markup.rst:31 msgid "alias: :code:`from aiogram.methods import EditMessageReplyMarkup`" msgstr "" -#: ../../api/methods/edit_message_reply_markup.rst:33 +#: ../../api/methods/edit_message_reply_markup.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/edit_message_reply_markup.rst:40 +#: ../../api/methods/edit_message_reply_markup.rst:41 msgid "As reply into Webhook in handler" msgstr "" -#: ../../api/methods/edit_message_reply_markup.rst:48 +#: ../../api/methods/edit_message_reply_markup.rst:49 msgid "As shortcut from received object" msgstr "" -#: ../../api/methods/edit_message_reply_markup.rst:50 +#: ../../api/methods/edit_message_reply_markup.rst:51 msgid ":meth:`aiogram.types.message.Message.edit_reply_markup`" msgstr "" +#: ../../api/methods/edit_message_reply_markup.rst:52 +msgid ":meth:`aiogram.types.message.Message.delete_reply_markup`" +msgstr "" + #~ msgid "" #~ "A JSON-serialized object for an " #~ "`inline keyboard \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.13.1\n" #: ../../api/methods/promote_chat_member.rst:3 msgid "promoteChatMember" @@ -58,23 +58,9 @@ msgstr "" #: aiogram.methods.promote_chat_member.PromoteChatMember.can_manage_chat:1 of msgid "" "Pass :code:`True` if the administrator can access the chat event log, " -"chat statistics, message statistics in channels, see channel members, see" -" anonymous administrators in supergroups and ignore slow mode. Implied by" -" any other administrator privilege" -msgstr "" - -#: ../../docstring -#: aiogram.methods.promote_chat_member.PromoteChatMember.can_post_messages:1 of -msgid "" -"Pass :code:`True` if the administrator can create channel posts, channels" -" only" -msgstr "" - -#: ../../docstring -#: aiogram.methods.promote_chat_member.PromoteChatMember.can_edit_messages:1 of -msgid "" -"Pass :code:`True` if the administrator can edit messages of other users " -"and can pin messages, channels only" +"boost list in channels, see channel members, report spam messages, see " +"anonymous administrators in supergroups and ignore slow mode. Implied by " +"any other administrator privilege" msgstr "" #: ../../docstring @@ -94,7 +80,7 @@ msgstr "" #: of msgid "" "Pass :code:`True` if the administrator can restrict, ban or unban chat " -"members" +"members, or access supergroup statistics" msgstr "" #: ../../docstring @@ -119,11 +105,47 @@ msgstr "" msgid "Pass :code:`True` if the administrator can invite new users to the chat" msgstr "" +#: ../../docstring +#: aiogram.methods.promote_chat_member.PromoteChatMember.can_post_messages:1 of +msgid "" +"Pass :code:`True` if the administrator can post messages in the channel, " +"or access channel statistics; channels only" +msgstr "" + +#: ../../docstring +#: aiogram.methods.promote_chat_member.PromoteChatMember.can_edit_messages:1 of +msgid "" +"Pass :code:`True` if the administrator can edit messages of other users " +"and can pin messages; channels only" +msgstr "" + #: ../../docstring #: aiogram.methods.promote_chat_member.PromoteChatMember.can_pin_messages:1 of msgid "Pass :code:`True` if the administrator can pin messages, supergroups only" msgstr "" +#: ../../docstring +#: aiogram.methods.promote_chat_member.PromoteChatMember.can_post_stories:1 of +msgid "" +"Pass :code:`True` if the administrator can post stories in the channel; " +"channels only" +msgstr "" + +#: ../../docstring +#: aiogram.methods.promote_chat_member.PromoteChatMember.can_edit_stories:1 of +msgid "" +"Pass :code:`True` if the administrator can edit stories posted by other " +"users; channels only" +msgstr "" + +#: ../../docstring +#: aiogram.methods.promote_chat_member.PromoteChatMember.can_delete_stories:1 +#: of +msgid "" +"Pass :code:`True` if the administrator can delete stories posted by other" +" users; channels only" +msgstr "" + #: ../../docstring #: aiogram.methods.promote_chat_member.PromoteChatMember.can_manage_topics:1 of msgid "" @@ -131,43 +153,43 @@ msgid "" "reopen forum topics, supergroups only" msgstr "" -#: ../../api/methods/promote_chat_member.rst:14 +#: ../../api/methods/promote_chat_member.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/promote_chat_member.rst:17 +#: ../../api/methods/promote_chat_member.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/promote_chat_member.rst:25 +#: ../../api/methods/promote_chat_member.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/promote_chat_member.rst:27 +#: ../../api/methods/promote_chat_member.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/promote_chat_member.rst:29 +#: ../../api/methods/promote_chat_member.rst:30 msgid ":code:`from aiogram.methods.promote_chat_member import PromoteChatMember`" msgstr "" -#: ../../api/methods/promote_chat_member.rst:30 +#: ../../api/methods/promote_chat_member.rst:31 msgid "alias: :code:`from aiogram.methods import PromoteChatMember`" msgstr "" -#: ../../api/methods/promote_chat_member.rst:33 +#: ../../api/methods/promote_chat_member.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/promote_chat_member.rst:40 +#: ../../api/methods/promote_chat_member.rst:41 msgid "As reply into Webhook in handler" msgstr "" -#: ../../api/methods/promote_chat_member.rst:48 +#: ../../api/methods/promote_chat_member.rst:49 msgid "As shortcut from received object" msgstr "" -#: ../../api/methods/promote_chat_member.rst:50 +#: ../../api/methods/promote_chat_member.rst:51 msgid ":meth:`aiogram.types.chat.Chat.promote`" msgstr "" @@ -181,3 +203,29 @@ msgstr "" #~ " him)" #~ msgstr "" +#~ msgid "" +#~ "Pass :code:`True` if the administrator " +#~ "can access the chat event log, " +#~ "chat statistics, message statistics in " +#~ "channels, see channel members, see " +#~ "anonymous administrators in supergroups and" +#~ " ignore slow mode. Implied by any " +#~ "other administrator privilege" +#~ msgstr "" + +#~ msgid "" +#~ "Pass :code:`True` if the administrator " +#~ "can create channel posts, channels only" +#~ msgstr "" + +#~ msgid "" +#~ "Pass :code:`True` if the administrator " +#~ "can edit messages of other users " +#~ "and can pin messages, channels only" +#~ msgstr "" + +#~ msgid "" +#~ "Pass :code:`True` if the administrator " +#~ "can restrict, ban or unban chat " +#~ "members" +#~ msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/restrict_chat_member.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/restrict_chat_member.po index 6ab0dc68..beed5bec 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/restrict_chat_member.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/restrict_chat_member.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-02-12 00:22+0200\n" +"POT-Creation-Date: 2023-10-08 19:04+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/methods/restrict_chat_member.rst:3 msgid "restrictChatMember" @@ -70,50 +70,58 @@ msgstr "" #: ../../docstring #: aiogram.methods.restrict_chat_member.RestrictChatMember.until_date:1 of msgid "" -"Date when restrictions will be lifted for the user, unix time. If user is" +"Date when restrictions will be lifted for the user; Unix time. If user is" " restricted for more than 366 days or less than 30 seconds from the " "current time, they are considered to be restricted forever" msgstr "" -#: ../../api/methods/restrict_chat_member.rst:14 +#: ../../api/methods/restrict_chat_member.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/restrict_chat_member.rst:17 +#: ../../api/methods/restrict_chat_member.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/restrict_chat_member.rst:25 +#: ../../api/methods/restrict_chat_member.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/restrict_chat_member.rst:27 +#: ../../api/methods/restrict_chat_member.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/restrict_chat_member.rst:29 +#: ../../api/methods/restrict_chat_member.rst:30 msgid "" ":code:`from aiogram.methods.restrict_chat_member import " "RestrictChatMember`" msgstr "" -#: ../../api/methods/restrict_chat_member.rst:30 +#: ../../api/methods/restrict_chat_member.rst:31 msgid "alias: :code:`from aiogram.methods import RestrictChatMember`" msgstr "" -#: ../../api/methods/restrict_chat_member.rst:33 +#: ../../api/methods/restrict_chat_member.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/restrict_chat_member.rst:40 +#: ../../api/methods/restrict_chat_member.rst:41 msgid "As reply into Webhook in handler" msgstr "" -#: ../../api/methods/restrict_chat_member.rst:48 +#: ../../api/methods/restrict_chat_member.rst:49 msgid "As shortcut from received object" msgstr "" -#: ../../api/methods/restrict_chat_member.rst:50 +#: ../../api/methods/restrict_chat_member.rst:51 msgid ":meth:`aiogram.types.chat.Chat.restrict`" msgstr "" +#~ msgid "" +#~ "Date when restrictions will be lifted" +#~ " for the user, unix time. If " +#~ "user is restricted for more than " +#~ "366 days or less than 30 seconds" +#~ " from the current time, they are " +#~ "considered to be restricted forever" +#~ msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_animation.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_animation.po index 57619de4..a67de7cf 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_animation.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_animation.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/methods/send_animation.rst:3 msgid "sendAnimation" @@ -72,7 +72,7 @@ msgstr "" msgid "Animation height" msgstr "" -#: ../../docstring aiogram.methods.send_animation.SendAnimation.thumb:1 of +#: ../../docstring aiogram.methods.send_animation.SendAnimation.thumbnail:1 of msgid "" "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" @@ -146,50 +146,62 @@ msgid "" "remove reply keyboard or to force a reply from the user." msgstr "" -#: ../../api/methods/send_animation.rst:14 +#: ../../api/methods/send_animation.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/send_animation.rst:17 +#: ../../api/methods/send_animation.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/send_animation.rst:25 +#: ../../api/methods/send_animation.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/send_animation.rst:27 +#: ../../api/methods/send_animation.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/send_animation.rst:29 +#: ../../api/methods/send_animation.rst:30 msgid ":code:`from aiogram.methods.send_animation import SendAnimation`" msgstr "" -#: ../../api/methods/send_animation.rst:30 +#: ../../api/methods/send_animation.rst:31 msgid "alias: :code:`from aiogram.methods import SendAnimation`" msgstr "" -#: ../../api/methods/send_animation.rst:33 +#: ../../api/methods/send_animation.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/send_animation.rst:40 +#: ../../api/methods/send_animation.rst:41 msgid "As reply into Webhook in handler" msgstr "" -#: ../../api/methods/send_animation.rst:48 +#: ../../api/methods/send_animation.rst:49 msgid "As shortcut from received object" msgstr "" -#: ../../api/methods/send_animation.rst:50 +#: ../../api/methods/send_animation.rst:51 msgid ":meth:`aiogram.types.message.Message.answer_animation`" msgstr "" -#: ../../api/methods/send_animation.rst:51 +#: ../../api/methods/send_animation.rst:52 msgid ":meth:`aiogram.types.message.Message.reply_animation`" msgstr "" +#: ../../api/methods/send_animation.rst:53 +msgid ":meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation`" +msgstr "" + +#: ../../api/methods/send_animation.rst:54 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_animation`" +msgstr "" + +#: ../../api/methods/send_animation.rst:55 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm`" +msgstr "" + #~ msgid "" #~ "Additional interface options. A JSON-" #~ "serialized object for an `inline " diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_audio.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_audio.po index 46d06181..63d6e0fc 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_audio.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_audio.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/methods/send_audio.rst:3 msgid "sendAudio" @@ -89,7 +89,7 @@ msgstr "" msgid "Track name" msgstr "" -#: ../../docstring aiogram.methods.send_audio.SendAudio.thumb:1 of +#: ../../docstring aiogram.methods.send_audio.SendAudio.thumbnail:1 of msgid "" "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" @@ -133,50 +133,62 @@ msgid "" "remove reply keyboard or to force a reply from the user." msgstr "" -#: ../../api/methods/send_audio.rst:14 +#: ../../api/methods/send_audio.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/send_audio.rst:17 +#: ../../api/methods/send_audio.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/send_audio.rst:25 +#: ../../api/methods/send_audio.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/send_audio.rst:27 +#: ../../api/methods/send_audio.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/send_audio.rst:29 +#: ../../api/methods/send_audio.rst:30 msgid ":code:`from aiogram.methods.send_audio import SendAudio`" msgstr "" -#: ../../api/methods/send_audio.rst:30 +#: ../../api/methods/send_audio.rst:31 msgid "alias: :code:`from aiogram.methods import SendAudio`" msgstr "" -#: ../../api/methods/send_audio.rst:33 +#: ../../api/methods/send_audio.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/send_audio.rst:40 +#: ../../api/methods/send_audio.rst:41 msgid "As reply into Webhook in handler" msgstr "" -#: ../../api/methods/send_audio.rst:48 +#: ../../api/methods/send_audio.rst:49 msgid "As shortcut from received object" msgstr "" -#: ../../api/methods/send_audio.rst:50 +#: ../../api/methods/send_audio.rst:51 msgid ":meth:`aiogram.types.message.Message.answer_audio`" msgstr "" -#: ../../api/methods/send_audio.rst:51 +#: ../../api/methods/send_audio.rst:52 msgid ":meth:`aiogram.types.message.Message.reply_audio`" msgstr "" +#: ../../api/methods/send_audio.rst:53 +msgid ":meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio`" +msgstr "" + +#: ../../api/methods/send_audio.rst:54 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_audio`" +msgstr "" + +#: ../../api/methods/send_audio.rst:55 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm`" +msgstr "" + #~ msgid "" #~ "Additional interface options. A JSON-" #~ "serialized object for an `inline " diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_contact.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_contact.po index 8ada4c7b..927d96ba 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_contact.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_contact.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/methods/send_contact.rst:3 msgid "sendContact" @@ -99,50 +99,62 @@ msgid "" "remove reply keyboard or to force a reply from the user." msgstr "" -#: ../../api/methods/send_contact.rst:14 +#: ../../api/methods/send_contact.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/send_contact.rst:17 +#: ../../api/methods/send_contact.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/send_contact.rst:25 +#: ../../api/methods/send_contact.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/send_contact.rst:27 +#: ../../api/methods/send_contact.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/send_contact.rst:29 +#: ../../api/methods/send_contact.rst:30 msgid ":code:`from aiogram.methods.send_contact import SendContact`" msgstr "" -#: ../../api/methods/send_contact.rst:30 +#: ../../api/methods/send_contact.rst:31 msgid "alias: :code:`from aiogram.methods import SendContact`" msgstr "" -#: ../../api/methods/send_contact.rst:33 +#: ../../api/methods/send_contact.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/send_contact.rst:40 +#: ../../api/methods/send_contact.rst:41 msgid "As reply into Webhook in handler" msgstr "" -#: ../../api/methods/send_contact.rst:48 +#: ../../api/methods/send_contact.rst:49 msgid "As shortcut from received object" msgstr "" -#: ../../api/methods/send_contact.rst:50 +#: ../../api/methods/send_contact.rst:51 msgid ":meth:`aiogram.types.message.Message.answer_contact`" msgstr "" -#: ../../api/methods/send_contact.rst:51 +#: ../../api/methods/send_contact.rst:52 msgid ":meth:`aiogram.types.message.Message.reply_contact`" msgstr "" +#: ../../api/methods/send_contact.rst:53 +msgid ":meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_contact`" +msgstr "" + +#: ../../api/methods/send_contact.rst:54 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_contact`" +msgstr "" + +#: ../../api/methods/send_contact.rst:55 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_contact_pm`" +msgstr "" + #~ msgid "" #~ "Additional interface options. A JSON-" #~ "serialized object for an `inline " diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_dice.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_dice.po index 19a52d2f..c807f69c 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_dice.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_dice.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/methods/send_dice.rst:3 msgid "sendDice" @@ -86,57 +86,58 @@ msgid "" "remove reply keyboard or to force a reply from the user." msgstr "" -#: ../../api/methods/send_dice.rst:14 +#: ../../api/methods/send_dice.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/send_dice.rst:17 +#: ../../api/methods/send_dice.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/send_dice.rst:25 +#: ../../api/methods/send_dice.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/send_dice.rst:27 +#: ../../api/methods/send_dice.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/send_dice.rst:29 +#: ../../api/methods/send_dice.rst:30 msgid ":code:`from aiogram.methods.send_dice import SendDice`" msgstr "" -#: ../../api/methods/send_dice.rst:30 +#: ../../api/methods/send_dice.rst:31 msgid "alias: :code:`from aiogram.methods import SendDice`" msgstr "" -#: ../../api/methods/send_dice.rst:33 +#: ../../api/methods/send_dice.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/send_dice.rst:40 +#: ../../api/methods/send_dice.rst:41 msgid "As reply into Webhook in handler" msgstr "" -#: ../../api/methods/send_dice.rst:48 +#: ../../api/methods/send_dice.rst:49 msgid "As shortcut from received object" msgstr "" -#: ../../api/methods/send_dice.rst:50 +#: ../../api/methods/send_dice.rst:51 msgid ":meth:`aiogram.types.message.Message.answer_dice`" msgstr "" -#: ../../api/methods/send_dice.rst:51 +#: ../../api/methods/send_dice.rst:52 msgid ":meth:`aiogram.types.message.Message.reply_dice`" msgstr "" -#~ msgid "" -#~ "Additional interface options. A JSON-" -#~ "serialized object for an `inline " -#~ "keyboard `_, " -#~ "`custom reply keyboard " -#~ "`_, instructions " -#~ "to remove reply keyboard or to " -#~ "force a reply from the user." -#~ msgstr "" +#: ../../api/methods/send_dice.rst:53 +msgid ":meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_dice`" +msgstr "" + +#: ../../api/methods/send_dice.rst:54 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_dice`" +msgstr "" + +#: ../../api/methods/send_dice.rst:55 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_dice_pm`" +msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_document.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_document.po index 2b2e658f..b5b89591 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_document.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_document.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/methods/send_document.rst:3 msgid "sendDocument" @@ -58,7 +58,7 @@ msgid "" " forum supergroups only" msgstr "" -#: ../../docstring aiogram.methods.send_document.SendDocument.thumb:1 of +#: ../../docstring aiogram.methods.send_document.SendDocument.thumbnail:1 of msgid "" "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" @@ -131,50 +131,62 @@ msgid "" "remove reply keyboard or to force a reply from the user." msgstr "" -#: ../../api/methods/send_document.rst:14 +#: ../../api/methods/send_document.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/send_document.rst:17 +#: ../../api/methods/send_document.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/send_document.rst:25 +#: ../../api/methods/send_document.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/send_document.rst:27 +#: ../../api/methods/send_document.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/send_document.rst:29 +#: ../../api/methods/send_document.rst:30 msgid ":code:`from aiogram.methods.send_document import SendDocument`" msgstr "" -#: ../../api/methods/send_document.rst:30 +#: ../../api/methods/send_document.rst:31 msgid "alias: :code:`from aiogram.methods import SendDocument`" msgstr "" -#: ../../api/methods/send_document.rst:33 +#: ../../api/methods/send_document.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/send_document.rst:40 +#: ../../api/methods/send_document.rst:41 msgid "As reply into Webhook in handler" msgstr "" -#: ../../api/methods/send_document.rst:48 +#: ../../api/methods/send_document.rst:49 msgid "As shortcut from received object" msgstr "" -#: ../../api/methods/send_document.rst:50 +#: ../../api/methods/send_document.rst:51 msgid ":meth:`aiogram.types.message.Message.answer_document`" msgstr "" -#: ../../api/methods/send_document.rst:51 +#: ../../api/methods/send_document.rst:52 msgid ":meth:`aiogram.types.message.Message.reply_document`" msgstr "" +#: ../../api/methods/send_document.rst:53 +msgid ":meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_document`" +msgstr "" + +#: ../../api/methods/send_document.rst:54 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_document`" +msgstr "" + +#: ../../api/methods/send_document.rst:55 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_document_pm`" +msgstr "" + #~ msgid "" #~ "Additional interface options. A JSON-" #~ "serialized object for an `inline " diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_game.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_game.po index a46e72a0..17feaa58 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_game.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_game.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/methods/send_game.rst:3 msgid "sendGame" @@ -80,50 +80,62 @@ msgid "" "button must launch the game." msgstr "" -#: ../../api/methods/send_game.rst:14 +#: ../../api/methods/send_game.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/send_game.rst:17 +#: ../../api/methods/send_game.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/send_game.rst:25 +#: ../../api/methods/send_game.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/send_game.rst:27 +#: ../../api/methods/send_game.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/send_game.rst:29 +#: ../../api/methods/send_game.rst:30 msgid ":code:`from aiogram.methods.send_game import SendGame`" msgstr "" -#: ../../api/methods/send_game.rst:30 +#: ../../api/methods/send_game.rst:31 msgid "alias: :code:`from aiogram.methods import SendGame`" msgstr "" -#: ../../api/methods/send_game.rst:33 +#: ../../api/methods/send_game.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/send_game.rst:40 +#: ../../api/methods/send_game.rst:41 msgid "As reply into Webhook in handler" msgstr "" -#: ../../api/methods/send_game.rst:48 +#: ../../api/methods/send_game.rst:49 msgid "As shortcut from received object" msgstr "" -#: ../../api/methods/send_game.rst:50 +#: ../../api/methods/send_game.rst:51 msgid ":meth:`aiogram.types.message.Message.answer_game`" msgstr "" -#: ../../api/methods/send_game.rst:51 +#: ../../api/methods/send_game.rst:52 msgid ":meth:`aiogram.types.message.Message.reply_game`" msgstr "" +#: ../../api/methods/send_game.rst:53 +msgid ":meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_game`" +msgstr "" + +#: ../../api/methods/send_game.rst:54 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_game`" +msgstr "" + +#: ../../api/methods/send_game.rst:55 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_game_pm`" +msgstr "" + #~ msgid "" #~ "A JSON-serialized object for an " #~ "`inline keyboard \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/methods/send_invoice.rst:3 msgid "sendInvoice" @@ -210,50 +210,62 @@ msgid "" "first button must be a Pay button." msgstr "" -#: ../../api/methods/send_invoice.rst:14 +#: ../../api/methods/send_invoice.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/send_invoice.rst:17 +#: ../../api/methods/send_invoice.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/send_invoice.rst:25 +#: ../../api/methods/send_invoice.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/send_invoice.rst:27 +#: ../../api/methods/send_invoice.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/send_invoice.rst:29 +#: ../../api/methods/send_invoice.rst:30 msgid ":code:`from aiogram.methods.send_invoice import SendInvoice`" msgstr "" -#: ../../api/methods/send_invoice.rst:30 +#: ../../api/methods/send_invoice.rst:31 msgid "alias: :code:`from aiogram.methods import SendInvoice`" msgstr "" -#: ../../api/methods/send_invoice.rst:33 +#: ../../api/methods/send_invoice.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/send_invoice.rst:40 +#: ../../api/methods/send_invoice.rst:41 msgid "As reply into Webhook in handler" msgstr "" -#: ../../api/methods/send_invoice.rst:48 +#: ../../api/methods/send_invoice.rst:49 msgid "As shortcut from received object" msgstr "" -#: ../../api/methods/send_invoice.rst:50 +#: ../../api/methods/send_invoice.rst:51 msgid ":meth:`aiogram.types.message.Message.answer_invoice`" msgstr "" -#: ../../api/methods/send_invoice.rst:51 +#: ../../api/methods/send_invoice.rst:52 msgid ":meth:`aiogram.types.message.Message.reply_invoice`" msgstr "" +#: ../../api/methods/send_invoice.rst:53 +msgid ":meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice`" +msgstr "" + +#: ../../api/methods/send_invoice.rst:54 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice`" +msgstr "" + +#: ../../api/methods/send_invoice.rst:55 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm`" +msgstr "" + #~ msgid "" #~ "A JSON-serialized object for an " #~ "`inline keyboard \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/methods/send_location.rst:3 msgid "sendLocation" @@ -115,50 +115,62 @@ msgid "" "remove reply keyboard or to force a reply from the user." msgstr "" -#: ../../api/methods/send_location.rst:14 +#: ../../api/methods/send_location.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/send_location.rst:17 +#: ../../api/methods/send_location.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/send_location.rst:25 +#: ../../api/methods/send_location.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/send_location.rst:27 +#: ../../api/methods/send_location.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/send_location.rst:29 +#: ../../api/methods/send_location.rst:30 msgid ":code:`from aiogram.methods.send_location import SendLocation`" msgstr "" -#: ../../api/methods/send_location.rst:30 +#: ../../api/methods/send_location.rst:31 msgid "alias: :code:`from aiogram.methods import SendLocation`" msgstr "" -#: ../../api/methods/send_location.rst:33 +#: ../../api/methods/send_location.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/send_location.rst:40 +#: ../../api/methods/send_location.rst:41 msgid "As reply into Webhook in handler" msgstr "" -#: ../../api/methods/send_location.rst:48 +#: ../../api/methods/send_location.rst:49 msgid "As shortcut from received object" msgstr "" -#: ../../api/methods/send_location.rst:50 +#: ../../api/methods/send_location.rst:51 msgid ":meth:`aiogram.types.message.Message.answer_location`" msgstr "" -#: ../../api/methods/send_location.rst:51 +#: ../../api/methods/send_location.rst:52 msgid ":meth:`aiogram.types.message.Message.reply_location`" msgstr "" +#: ../../api/methods/send_location.rst:53 +msgid ":meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_location`" +msgstr "" + +#: ../../api/methods/send_location.rst:54 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_location`" +msgstr "" + +#: ../../api/methods/send_location.rst:55 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_location_pm`" +msgstr "" + #~ msgid "" #~ "Additional interface options. A JSON-" #~ "serialized object for an `inline " diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_media_group.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_media_group.po index e3d5b3db..8d271fef 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_media_group.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_media_group.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/methods/send_media_group.rst:3 msgid "sendMediaGroup" @@ -82,46 +82,58 @@ msgid "" "replied-to message is not found" msgstr "" -#: ../../api/methods/send_media_group.rst:14 +#: ../../api/methods/send_media_group.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/send_media_group.rst:17 +#: ../../api/methods/send_media_group.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/send_media_group.rst:25 +#: ../../api/methods/send_media_group.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/send_media_group.rst:27 +#: ../../api/methods/send_media_group.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/send_media_group.rst:29 +#: ../../api/methods/send_media_group.rst:30 msgid ":code:`from aiogram.methods.send_media_group import SendMediaGroup`" msgstr "" -#: ../../api/methods/send_media_group.rst:30 +#: ../../api/methods/send_media_group.rst:31 msgid "alias: :code:`from aiogram.methods import SendMediaGroup`" msgstr "" -#: ../../api/methods/send_media_group.rst:33 +#: ../../api/methods/send_media_group.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/send_media_group.rst:40 +#: ../../api/methods/send_media_group.rst:41 msgid "As reply into Webhook in handler" msgstr "" -#: ../../api/methods/send_media_group.rst:48 +#: ../../api/methods/send_media_group.rst:49 msgid "As shortcut from received object" msgstr "" -#: ../../api/methods/send_media_group.rst:50 +#: ../../api/methods/send_media_group.rst:51 msgid ":meth:`aiogram.types.message.Message.answer_media_group`" msgstr "" -#: ../../api/methods/send_media_group.rst:51 +#: ../../api/methods/send_media_group.rst:52 msgid ":meth:`aiogram.types.message.Message.reply_media_group`" msgstr "" + +#: ../../api/methods/send_media_group.rst:53 +msgid ":meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_media_group`" +msgstr "" + +#: ../../api/methods/send_media_group.rst:54 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group`" +msgstr "" + +#: ../../api/methods/send_media_group.rst:55 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group_pm`" +msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_message.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_message.po index e0a83b6d..fb028b0d 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_message.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_message.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/methods/send_message.rst:3 msgid "sendMessage" @@ -103,50 +103,62 @@ msgid "" "remove reply keyboard or to force a reply from the user." msgstr "" -#: ../../api/methods/send_message.rst:14 +#: ../../api/methods/send_message.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/send_message.rst:17 +#: ../../api/methods/send_message.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/send_message.rst:25 +#: ../../api/methods/send_message.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/send_message.rst:27 +#: ../../api/methods/send_message.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/send_message.rst:29 +#: ../../api/methods/send_message.rst:30 msgid ":code:`from aiogram.methods.send_message import SendMessage`" msgstr "" -#: ../../api/methods/send_message.rst:30 +#: ../../api/methods/send_message.rst:31 msgid "alias: :code:`from aiogram.methods import SendMessage`" msgstr "" -#: ../../api/methods/send_message.rst:33 +#: ../../api/methods/send_message.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/send_message.rst:40 +#: ../../api/methods/send_message.rst:41 msgid "As reply into Webhook in handler" msgstr "" -#: ../../api/methods/send_message.rst:48 +#: ../../api/methods/send_message.rst:49 msgid "As shortcut from received object" msgstr "" -#: ../../api/methods/send_message.rst:50 +#: ../../api/methods/send_message.rst:51 msgid ":meth:`aiogram.types.message.Message.answer`" msgstr "" -#: ../../api/methods/send_message.rst:51 +#: ../../api/methods/send_message.rst:52 msgid ":meth:`aiogram.types.message.Message.reply`" msgstr "" +#: ../../api/methods/send_message.rst:53 +msgid ":meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer`" +msgstr "" + +#: ../../api/methods/send_message.rst:54 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer`" +msgstr "" + +#: ../../api/methods/send_message.rst:55 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_pm`" +msgstr "" + #~ msgid "" #~ "Additional interface options. A JSON-" #~ "serialized object for an `inline " diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_photo.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_photo.po index 440f3fb0..ea535aa3 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_photo.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_photo.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/methods/send_photo.rst:3 msgid "sendPhoto" @@ -115,57 +115,58 @@ msgid "" "remove reply keyboard or to force a reply from the user." msgstr "" -#: ../../api/methods/send_photo.rst:14 +#: ../../api/methods/send_photo.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/send_photo.rst:17 +#: ../../api/methods/send_photo.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/send_photo.rst:25 +#: ../../api/methods/send_photo.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/send_photo.rst:27 +#: ../../api/methods/send_photo.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/send_photo.rst:29 +#: ../../api/methods/send_photo.rst:30 msgid ":code:`from aiogram.methods.send_photo import SendPhoto`" msgstr "" -#: ../../api/methods/send_photo.rst:30 +#: ../../api/methods/send_photo.rst:31 msgid "alias: :code:`from aiogram.methods import SendPhoto`" msgstr "" -#: ../../api/methods/send_photo.rst:33 +#: ../../api/methods/send_photo.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/send_photo.rst:40 +#: ../../api/methods/send_photo.rst:41 msgid "As reply into Webhook in handler" msgstr "" -#: ../../api/methods/send_photo.rst:48 +#: ../../api/methods/send_photo.rst:49 msgid "As shortcut from received object" msgstr "" -#: ../../api/methods/send_photo.rst:50 +#: ../../api/methods/send_photo.rst:51 msgid ":meth:`aiogram.types.message.Message.answer_photo`" msgstr "" -#: ../../api/methods/send_photo.rst:51 +#: ../../api/methods/send_photo.rst:52 msgid ":meth:`aiogram.types.message.Message.reply_photo`" msgstr "" -#~ msgid "" -#~ "Additional interface options. A JSON-" -#~ "serialized object for an `inline " -#~ "keyboard `_, " -#~ "`custom reply keyboard " -#~ "`_, instructions " -#~ "to remove reply keyboard or to " -#~ "force a reply from the user." -#~ msgstr "" +#: ../../api/methods/send_photo.rst:53 +msgid ":meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_photo`" +msgstr "" + +#: ../../api/methods/send_photo.rst:54 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_photo`" +msgstr "" + +#: ../../api/methods/send_photo.rst:55 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_photo_pm`" +msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_poll.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_poll.po index 9222d2c3..f7a0573a 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_poll.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_poll.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/methods/send_poll.rst:3 msgid "sendPoll" @@ -148,50 +148,62 @@ msgid "" "remove reply keyboard or to force a reply from the user." msgstr "" -#: ../../api/methods/send_poll.rst:14 +#: ../../api/methods/send_poll.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/send_poll.rst:17 +#: ../../api/methods/send_poll.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/send_poll.rst:25 +#: ../../api/methods/send_poll.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/send_poll.rst:27 +#: ../../api/methods/send_poll.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/send_poll.rst:29 +#: ../../api/methods/send_poll.rst:30 msgid ":code:`from aiogram.methods.send_poll import SendPoll`" msgstr "" -#: ../../api/methods/send_poll.rst:30 +#: ../../api/methods/send_poll.rst:31 msgid "alias: :code:`from aiogram.methods import SendPoll`" msgstr "" -#: ../../api/methods/send_poll.rst:33 +#: ../../api/methods/send_poll.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/send_poll.rst:40 +#: ../../api/methods/send_poll.rst:41 msgid "As reply into Webhook in handler" msgstr "" -#: ../../api/methods/send_poll.rst:48 +#: ../../api/methods/send_poll.rst:49 msgid "As shortcut from received object" msgstr "" -#: ../../api/methods/send_poll.rst:50 +#: ../../api/methods/send_poll.rst:51 msgid ":meth:`aiogram.types.message.Message.answer_poll`" msgstr "" -#: ../../api/methods/send_poll.rst:51 +#: ../../api/methods/send_poll.rst:52 msgid ":meth:`aiogram.types.message.Message.reply_poll`" msgstr "" +#: ../../api/methods/send_poll.rst:53 +msgid ":meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll`" +msgstr "" + +#: ../../api/methods/send_poll.rst:54 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_poll`" +msgstr "" + +#: ../../api/methods/send_poll.rst:55 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm`" +msgstr "" + #~ msgid "" #~ "Additional interface options. A JSON-" #~ "serialized object for an `inline " diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_sticker.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_sticker.po index 24650fbd..96a8c342 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_sticker.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_sticker.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/methods/send_sticker.rst:3 msgid "sendSticker" @@ -98,50 +98,62 @@ msgid "" "remove reply keyboard or to force a reply from the user." msgstr "" -#: ../../api/methods/send_sticker.rst:14 +#: ../../api/methods/send_sticker.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/send_sticker.rst:17 +#: ../../api/methods/send_sticker.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/send_sticker.rst:25 +#: ../../api/methods/send_sticker.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/send_sticker.rst:27 +#: ../../api/methods/send_sticker.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/send_sticker.rst:29 +#: ../../api/methods/send_sticker.rst:30 msgid ":code:`from aiogram.methods.send_sticker import SendSticker`" msgstr "" -#: ../../api/methods/send_sticker.rst:30 +#: ../../api/methods/send_sticker.rst:31 msgid "alias: :code:`from aiogram.methods import SendSticker`" msgstr "" -#: ../../api/methods/send_sticker.rst:33 +#: ../../api/methods/send_sticker.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/send_sticker.rst:40 +#: ../../api/methods/send_sticker.rst:41 msgid "As reply into Webhook in handler" msgstr "" -#: ../../api/methods/send_sticker.rst:48 +#: ../../api/methods/send_sticker.rst:49 msgid "As shortcut from received object" msgstr "" -#: ../../api/methods/send_sticker.rst:50 +#: ../../api/methods/send_sticker.rst:51 msgid ":meth:`aiogram.types.message.Message.answer_sticker`" msgstr "" -#: ../../api/methods/send_sticker.rst:51 +#: ../../api/methods/send_sticker.rst:52 msgid ":meth:`aiogram.types.message.Message.reply_sticker`" msgstr "" +#: ../../api/methods/send_sticker.rst:53 +msgid ":meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_sticker`" +msgstr "" + +#: ../../api/methods/send_sticker.rst:54 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker`" +msgstr "" + +#: ../../api/methods/send_sticker.rst:55 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker_pm`" +msgstr "" + #~ msgid "" #~ "Additional interface options. A JSON-" #~ "serialized object for an `inline " diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_venue.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_venue.po index 848d6898..ea79ba2d 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_venue.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_venue.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/methods/send_venue.rst:3 msgid "sendVenue" @@ -116,50 +116,62 @@ msgid "" "remove reply keyboard or to force a reply from the user." msgstr "" -#: ../../api/methods/send_venue.rst:14 +#: ../../api/methods/send_venue.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/send_venue.rst:17 +#: ../../api/methods/send_venue.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/send_venue.rst:25 +#: ../../api/methods/send_venue.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/send_venue.rst:27 +#: ../../api/methods/send_venue.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/send_venue.rst:29 +#: ../../api/methods/send_venue.rst:30 msgid ":code:`from aiogram.methods.send_venue import SendVenue`" msgstr "" -#: ../../api/methods/send_venue.rst:30 +#: ../../api/methods/send_venue.rst:31 msgid "alias: :code:`from aiogram.methods import SendVenue`" msgstr "" -#: ../../api/methods/send_venue.rst:33 +#: ../../api/methods/send_venue.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/send_venue.rst:40 +#: ../../api/methods/send_venue.rst:41 msgid "As reply into Webhook in handler" msgstr "" -#: ../../api/methods/send_venue.rst:48 +#: ../../api/methods/send_venue.rst:49 msgid "As shortcut from received object" msgstr "" -#: ../../api/methods/send_venue.rst:50 +#: ../../api/methods/send_venue.rst:51 msgid ":meth:`aiogram.types.message.Message.answer_venue`" msgstr "" -#: ../../api/methods/send_venue.rst:51 +#: ../../api/methods/send_venue.rst:52 msgid ":meth:`aiogram.types.message.Message.reply_venue`" msgstr "" +#: ../../api/methods/send_venue.rst:53 +msgid ":meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue`" +msgstr "" + +#: ../../api/methods/send_venue.rst:54 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_venue`" +msgstr "" + +#: ../../api/methods/send_venue.rst:55 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm`" +msgstr "" + #~ msgid "" #~ "Additional interface options. A JSON-" #~ "serialized object for an `inline " diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_video.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_video.po index 5a575db2..2e2b836f 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_video.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_video.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-30 22:28+0200\n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/methods/send_video.rst:3 msgid "sendVideo" @@ -72,7 +72,7 @@ msgstr "" msgid "Video height" msgstr "" -#: ../../docstring aiogram.methods.send_video.SendVideo.thumb:1 of +#: ../../docstring aiogram.methods.send_video.SendVideo.thumbnail:1 of msgid "" "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" @@ -145,50 +145,62 @@ msgid "" "remove reply keyboard or to force a reply from the user." msgstr "" -#: ../../api/methods/send_video.rst:14 +#: ../../api/methods/send_video.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/send_video.rst:17 +#: ../../api/methods/send_video.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/send_video.rst:25 +#: ../../api/methods/send_video.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/send_video.rst:27 +#: ../../api/methods/send_video.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/send_video.rst:29 +#: ../../api/methods/send_video.rst:30 msgid ":code:`from aiogram.methods.send_video import SendVideo`" msgstr "" -#: ../../api/methods/send_video.rst:30 +#: ../../api/methods/send_video.rst:31 msgid "alias: :code:`from aiogram.methods import SendVideo`" msgstr "" -#: ../../api/methods/send_video.rst:33 +#: ../../api/methods/send_video.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/send_video.rst:40 +#: ../../api/methods/send_video.rst:41 msgid "As reply into Webhook in handler" msgstr "" -#: ../../api/methods/send_video.rst:48 +#: ../../api/methods/send_video.rst:49 msgid "As shortcut from received object" msgstr "" -#: ../../api/methods/send_video.rst:50 +#: ../../api/methods/send_video.rst:51 msgid ":meth:`aiogram.types.message.Message.answer_video`" msgstr "" -#: ../../api/methods/send_video.rst:51 +#: ../../api/methods/send_video.rst:52 msgid ":meth:`aiogram.types.message.Message.reply_video`" msgstr "" +#: ../../api/methods/send_video.rst:53 +msgid ":meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video`" +msgstr "" + +#: ../../api/methods/send_video.rst:54 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_video`" +msgstr "" + +#: ../../api/methods/send_video.rst:55 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm`" +msgstr "" + #~ msgid "" #~ "Additional interface options. A JSON-" #~ "serialized object for an `inline " diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_video_note.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_video_note.po index 959a0407..f9c80a5e 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_video_note.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_video_note.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/methods/send_video_note.rst:3 msgid "sendVideoNote" @@ -67,7 +67,7 @@ msgstr "" msgid "Video width and height, i.e. diameter of the video message" msgstr "" -#: ../../docstring aiogram.methods.send_video_note.SendVideoNote.thumb:1 of +#: ../../docstring aiogram.methods.send_video_note.SendVideoNote.thumbnail:1 of msgid "" "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" @@ -114,50 +114,62 @@ msgid "" "remove reply keyboard or to force a reply from the user." msgstr "" -#: ../../api/methods/send_video_note.rst:14 +#: ../../api/methods/send_video_note.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/send_video_note.rst:17 +#: ../../api/methods/send_video_note.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/send_video_note.rst:25 +#: ../../api/methods/send_video_note.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/send_video_note.rst:27 +#: ../../api/methods/send_video_note.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/send_video_note.rst:29 +#: ../../api/methods/send_video_note.rst:30 msgid ":code:`from aiogram.methods.send_video_note import SendVideoNote`" msgstr "" -#: ../../api/methods/send_video_note.rst:30 +#: ../../api/methods/send_video_note.rst:31 msgid "alias: :code:`from aiogram.methods import SendVideoNote`" msgstr "" -#: ../../api/methods/send_video_note.rst:33 +#: ../../api/methods/send_video_note.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/send_video_note.rst:40 +#: ../../api/methods/send_video_note.rst:41 msgid "As reply into Webhook in handler" msgstr "" -#: ../../api/methods/send_video_note.rst:48 +#: ../../api/methods/send_video_note.rst:49 msgid "As shortcut from received object" msgstr "" -#: ../../api/methods/send_video_note.rst:50 +#: ../../api/methods/send_video_note.rst:51 msgid ":meth:`aiogram.types.message.Message.answer_video_note`" msgstr "" -#: ../../api/methods/send_video_note.rst:51 +#: ../../api/methods/send_video_note.rst:52 msgid ":meth:`aiogram.types.message.Message.reply_video_note`" msgstr "" +#: ../../api/methods/send_video_note.rst:53 +msgid ":meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video_note`" +msgstr "" + +#: ../../api/methods/send_video_note.rst:54 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note`" +msgstr "" + +#: ../../api/methods/send_video_note.rst:55 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note_pm`" +msgstr "" + #~ msgid "" #~ "Additional interface options. A JSON-" #~ "serialized object for an `inline " diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_voice.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_voice.po index 553a3265..d46ac20e 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_voice.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/send_voice.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/methods/send_voice.rst:3 msgid "sendVoice" @@ -115,50 +115,62 @@ msgid "" "remove reply keyboard or to force a reply from the user." msgstr "" -#: ../../api/methods/send_voice.rst:14 +#: ../../api/methods/send_voice.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/send_voice.rst:17 +#: ../../api/methods/send_voice.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/send_voice.rst:25 +#: ../../api/methods/send_voice.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/send_voice.rst:27 +#: ../../api/methods/send_voice.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/send_voice.rst:29 +#: ../../api/methods/send_voice.rst:30 msgid ":code:`from aiogram.methods.send_voice import SendVoice`" msgstr "" -#: ../../api/methods/send_voice.rst:30 +#: ../../api/methods/send_voice.rst:31 msgid "alias: :code:`from aiogram.methods import SendVoice`" msgstr "" -#: ../../api/methods/send_voice.rst:33 +#: ../../api/methods/send_voice.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/send_voice.rst:40 +#: ../../api/methods/send_voice.rst:41 msgid "As reply into Webhook in handler" msgstr "" -#: ../../api/methods/send_voice.rst:48 +#: ../../api/methods/send_voice.rst:49 msgid "As shortcut from received object" msgstr "" -#: ../../api/methods/send_voice.rst:50 +#: ../../api/methods/send_voice.rst:51 msgid ":meth:`aiogram.types.message.Message.answer_voice`" msgstr "" -#: ../../api/methods/send_voice.rst:51 +#: ../../api/methods/send_voice.rst:52 msgid ":meth:`aiogram.types.message.Message.reply_voice`" msgstr "" +#: ../../api/methods/send_voice.rst:53 +msgid ":meth:`aiogram.types.chat_member_updated.ChatMemberUpdated.answer_voice`" +msgstr "" + +#: ../../api/methods/send_voice.rst:54 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_voice`" +msgstr "" + +#: ../../api/methods/send_voice.rst:55 +msgid ":meth:`aiogram.types.chat_join_request.ChatJoinRequest.answer_voice_pm`" +msgstr "" + #~ msgid "" #~ "Additional interface options. A JSON-" #~ "serialized object for an `inline " diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/set_my_name.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/set_my_name.po index dc67d302..7eea0a25 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/set_my_name.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/set_my_name.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-01 20:49+0300\n" +"POT-Creation-Date: 2023-07-02 15:10+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/set_sticker_set_thumb.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/set_sticker_set_thumb.po index 4a04cab2..98350240 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/set_sticker_set_thumb.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/set_sticker_set_thumb.po @@ -3,10 +3,9 @@ # This file is distributed under the same license as the aiogram package. # FIRST AUTHOR , 2022. # -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: aiogram \n" +"Project-Id-Version: aiogram\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-06-01 20:49+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -16,6 +15,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.12.1\n" +"X-Generator: Poedit 3.3.2\n" #: ../../api/methods/set_sticker_set_thumb.rst:3 msgid "setStickerSetThumb" @@ -23,7 +23,30 @@ msgstr "" #: ../../api/methods/set_sticker_set_thumb.rst:5 msgid "Returns: :obj:`bool`" -msgstr "" +msgstr "Повертає: :obj:`bool`" + +#: aiogram.methods.set_sticker_set_thumb.SetStickerSetThumbnail:1 of +msgid "Use this method to set the thumbnail of a regular or mask sticker set. The format of the thumbnail file must match the format of the stickers in the set. Returns :code:`True` on success." +msgstr "Використовуйте цей метод, щоб встановити мініатюру звичайного або маскового набору стікерів. Формат файлу мініатюри повинен відповідати формату стікерів у наборі. Повертає :code:`True` при успіху." + +#: aiogram.methods.set_sticker_set_thumb.SetStickerSetThumbnail:3 of +msgid "Source: https://core.telegram.org/bots/api#setstickersetthumbnail" +msgstr "Джерело: https://core.telegram.org/bots/api#setstickersetthumbnail" + +#: ../../docstring +#: aiogram.methods.set_sticker_set_thumb.SetStickerSetThumbnail.name:1 of +msgid "Sticker set name" +msgstr "Назва набору стікерів" + +#: ../../docstring +#: aiogram.methods.set_sticker_set_thumb.SetStickerSetThumbnail.user_id:1 of +msgid "User identifier of the sticker set owner" +msgstr "Ідентифікатор користувача власника набору стікерів " + +#: ../../docstring +#: aiogram.methods.set_sticker_set_thumb.SetStickerSetThumbnail.thumbnail:1 of +msgid "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." +msgstr "Зображення у форматі **.WEBP** або **.PNG** з мініатюрою має бути розміром до 128 кілобайт і мати ширину та висоту рівно 100 пікселів, або анімацією у форматі **.TGS** з мініатюрою розміром до 32 кілобайт (див. `https://core.telegram.org/stickers#animated-sticker-requirements `_`https://core.telegram.org/stickers#animated-sticker-requirements `_ технічні вимоги до анімованих наліпок), або **WEBM** відео з мініатюрою розміром до 32 кілобайт; дивіться `https://core.telegram.org/stickers#video-sticker-requirements `_`https://core.telegram.org/stickers#video-sticker-requirements `_ технічні вимоги до відео наліпок. Передайте *file_id* як рядок, щоб надіслати файл, який вже існує на серверах Telegram, передайте HTTP URL як рядок, щоб Telegram отримав файл з Інтернету, або завантажте новий файл за допомогою мультичастини/форма-даних. :ref:`Додаткова інформація про надсилання файлів \" `. Ескізи анімованих і відео-наборів наклейок не можуть бути завантажені через HTTP URL. Якщо цей параметр не вказано, то мініатюру буде вилучено, а замість неї буде використано першу наліпку." #: aiogram.methods.set_sticker_set_thumb.SetStickerSetThumbnail:1 of msgid "" @@ -73,11 +96,11 @@ msgstr "" #: ../../api/methods/set_sticker_set_thumb.rst:14 msgid "Usage" -msgstr "" +msgstr "Використання" #: ../../api/methods/set_sticker_set_thumb.rst:17 msgid "As bot method" -msgstr "" +msgstr "Як метод в bot" #: ../../api/methods/set_sticker_set_thumb.rst:25 msgid "Method as object" @@ -85,12 +108,10 @@ msgstr "" #: ../../api/methods/set_sticker_set_thumb.rst:27 msgid "Imports:" -msgstr "" +msgstr "Імпорти:" #: ../../api/methods/set_sticker_set_thumb.rst:29 -msgid "" -":code:`from aiogram.methods.set_sticker_set_thumb import " -"SetStickerSetThumb`" +msgid ":code:`from aiogram.methods.set_sticker_set_thumb import SetStickerSetThumb`" msgstr "" #: ../../api/methods/set_sticker_set_thumb.rst:30 @@ -99,11 +120,11 @@ msgstr "" #: ../../api/methods/set_sticker_set_thumb.rst:33 msgid "With specific bot" -msgstr "" +msgstr "З конкретним bot" #: ../../api/methods/set_sticker_set_thumb.rst:40 msgid "As reply into Webhook in handler" -msgstr "" +msgstr "Як відповідь у Webhook в обробнику" #~ msgid "" #~ "Use this method to set the " diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/set_webhook.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/set_webhook.po index 10f3b913..c1ec7a3a 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/set_webhook.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/set_webhook.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" +"POT-Creation-Date: 2023-10-29 02:16+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.1\n" #: ../../api/methods/set_webhook.rst:3 msgid "setWebhook" @@ -98,8 +98,8 @@ msgstr "" #: ../../docstring aiogram.methods.set_webhook.SetWebhook.allowed_updates:1 of msgid "" "A JSON-serialized list of the update types you want your bot to receive. " -"For example, specify ['message', 'edited_channel_post', 'callback_query']" -" to only receive updates of these types. See " +"For example, specify :code:`[\"message\", \"edited_channel_post\", " +"\"callback_query\"]` to only receive updates of these types. See " ":class:`aiogram.types.update.Update` for a complete list of available " "update types. Specify an empty list to receive all update types except " "*chat_member* (default). If not specified, the previous setting will be " @@ -119,34 +119,48 @@ msgid "" " is useful to ensure that the request comes from a webhook set by you." msgstr "" -#: ../../api/methods/set_webhook.rst:14 +#: ../../api/methods/set_webhook.rst:15 msgid "Usage" msgstr "" -#: ../../api/methods/set_webhook.rst:17 +#: ../../api/methods/set_webhook.rst:18 msgid "As bot method" msgstr "" -#: ../../api/methods/set_webhook.rst:25 +#: ../../api/methods/set_webhook.rst:26 msgid "Method as object" msgstr "" -#: ../../api/methods/set_webhook.rst:27 +#: ../../api/methods/set_webhook.rst:28 msgid "Imports:" msgstr "" -#: ../../api/methods/set_webhook.rst:29 +#: ../../api/methods/set_webhook.rst:30 msgid ":code:`from aiogram.methods.set_webhook import SetWebhook`" msgstr "" -#: ../../api/methods/set_webhook.rst:30 +#: ../../api/methods/set_webhook.rst:31 msgid "alias: :code:`from aiogram.methods import SetWebhook`" msgstr "" -#: ../../api/methods/set_webhook.rst:33 +#: ../../api/methods/set_webhook.rst:34 msgid "With specific bot" msgstr "" -#: ../../api/methods/set_webhook.rst:40 +#: ../../api/methods/set_webhook.rst:41 msgid "As reply into Webhook in handler" msgstr "" + +#~ msgid "" +#~ "A JSON-serialized list of the " +#~ "update types you want your bot to" +#~ " receive. For example, specify ['message'," +#~ " 'edited_channel_post', 'callback_query'] to only" +#~ " receive updates of these types. See" +#~ " :class:`aiogram.types.update.Update` for a " +#~ "complete list of available update types." +#~ " Specify an empty list to receive " +#~ "all update types except *chat_member* " +#~ "(default). If not specified, the " +#~ "previous setting will be used." +#~ msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/stop_poll.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/stop_poll.po index 269a1e06..d0315d1d 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/methods/stop_poll.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/stop_poll.po @@ -82,10 +82,3 @@ msgstr "" #: ../../api/methods/stop_poll.rst:40 msgid "As reply into Webhook in handler" msgstr "" - -#~ msgid "" -#~ "A JSON-serialized object for a new" -#~ " message `inline keyboard " -#~ "`_." -#~ msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/methods/unpin_all_general_forum_topic_messages.po b/docs/locale/uk_UA/LC_MESSAGES/api/methods/unpin_all_general_forum_topic_messages.po new file mode 100644 index 00000000..b4154aa5 --- /dev/null +++ b/docs/locale/uk_UA/LC_MESSAGES/api/methods/unpin_all_general_forum_topic_messages.po @@ -0,0 +1,94 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2023, aiogram Team +# This file is distributed under the same license as the aiogram package. +# FIRST AUTHOR , 2023. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: aiogram \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-08-26 23:17+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.12.1\n" + +#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:3 +msgid "unpinAllGeneralForumTopicMessages" +msgstr "" + +#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:5 +msgid "Returns: :obj:`bool`" +msgstr "" + +#: aiogram.methods.unpin_all_general_forum_topic_messages.UnpinAllGeneralForumTopicMessages:1 +#: of +msgid "" +"Use this method to clear the list of pinned messages in a General forum " +"topic. The bot must be an administrator in the chat for this to work and " +"must have the *can_pin_messages* administrator right in the supergroup. " +"Returns :code:`True` on success." +msgstr "" + +#: aiogram.methods.unpin_all_general_forum_topic_messages.UnpinAllGeneralForumTopicMessages:3 +#: of +msgid "" +"Source: " +"https://core.telegram.org/bots/api#unpinallgeneralforumtopicmessages" +msgstr "" + +#: ../../docstring +#: aiogram.methods.unpin_all_general_forum_topic_messages.UnpinAllGeneralForumTopicMessages.chat_id:1 +#: of +msgid "" +"Unique identifier for the target chat or username of the target " +"supergroup (in the format :code:`@supergroupusername`)" +msgstr "" + +#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:15 +msgid "Usage" +msgstr "" + +#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:18 +msgid "As bot method" +msgstr "" + +#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:26 +msgid "Method as object" +msgstr "" + +#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:28 +msgid "Imports:" +msgstr "" + +#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:30 +msgid "" +":code:`from aiogram.methods.unpin_all_general_forum_topic_messages import" +" UnpinAllGeneralForumTopicMessages`" +msgstr "" + +#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:31 +msgid "" +"alias: :code:`from aiogram.methods import " +"UnpinAllGeneralForumTopicMessages`" +msgstr "" + +#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:34 +msgid "With specific bot" +msgstr "" + +#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:41 +msgid "As reply into Webhook in handler" +msgstr "" + +#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:49 +msgid "As shortcut from received object" +msgstr "" + +#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:51 +msgid ":meth:`aiogram.types.chat.Chat.unpin_all_general_forum_topic_messages`" +msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/session/base.po b/docs/locale/uk_UA/LC_MESSAGES/api/session/base.po index 61ff8822..f28ad5d1 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/session/base.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/session/base.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-01 20:49+0300\n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -25,6 +25,14 @@ msgstr "" msgid "Abstract session for all client sessions" msgstr "" +#: aiogram.client.session.base.BaseSession:1 of +msgid "This is base class for all HTTP sessions in aiogram." +msgstr "" + +#: aiogram.client.session.base.BaseSession:3 of +msgid "If you want to create your own session, you must inherit from this class." +msgstr "" + #: aiogram.client.session.base.BaseSession.check_response:1 of msgid "Check response status" msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/session/middleware.po b/docs/locale/uk_UA/LC_MESSAGES/api/session/middleware.po new file mode 100644 index 00000000..137d74ca --- /dev/null +++ b/docs/locale/uk_UA/LC_MESSAGES/api/session/middleware.po @@ -0,0 +1,87 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2023, aiogram Team +# This file is distributed under the same license as the aiogram package. +# FIRST AUTHOR , 2023. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: aiogram \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.12.1\n" + +#: ../../api/session/middleware.rst:3 +msgid "Client session middlewares" +msgstr "" + +#: ../../api/session/middleware.rst:5 +msgid "" +"In some cases you may want to add some middlewares to the client session " +"to customize the behavior of the client." +msgstr "" + +#: ../../api/session/middleware.rst:7 +msgid "Some useful cases that is:" +msgstr "" + +#: ../../api/session/middleware.rst:9 +msgid "Log the outgoing requests" +msgstr "" + +#: ../../api/session/middleware.rst:10 +msgid "Customize the request parameters" +msgstr "" + +#: ../../api/session/middleware.rst:11 +msgid "Handle rate limiting errors and retry the request" +msgstr "" + +#: ../../api/session/middleware.rst:12 +msgid "others ..." +msgstr "" + +#: ../../api/session/middleware.rst:14 +msgid "" +"So, you can do it using client session middlewares. A client session " +"middleware is a function (or callable class) that receives the request " +"and the next middleware to call. The middleware can modify the request " +"and then call the next middleware to continue the request processing." +msgstr "" + +#: ../../api/session/middleware.rst:19 +msgid "How to register client session middleware?" +msgstr "" + +#: ../../api/session/middleware.rst:22 +msgid "Register using register method" +msgstr "" + +#: ../../api/session/middleware.rst:29 +msgid "Register using decorator" +msgstr "" + +#: ../../api/session/middleware.rst:44 +msgid "Example" +msgstr "" + +#: ../../api/session/middleware.rst:47 +msgid "Class based session middleware" +msgstr "" + +#: ../../api/session/middleware.rst:56 +msgid "" +"this middlewware is already implemented inside aiogram, so, if you want " +"to use it you can just import it :code:`from " +"aiogram.client.session.middlewares.request_logging import RequestLogging`" +msgstr "" + +#: ../../api/session/middleware.rst:61 +msgid "Function based session middleware" +msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/bot_name.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/bot_name.po index 93935ab2..12a6f942 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/bot_name.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/bot_name.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-01 20:49+0300\n" +"POT-Creation-Date: 2023-07-02 15:10+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/chat.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/chat.po index df76afc2..ab7d4b2b 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/chat.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/chat.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-02-12 00:22+0200\n" +"POT-Creation-Date: 2023-10-29 02:16+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.13.1\n" #: ../../api/types/chat.rst:3 msgid "Chat" @@ -88,6 +88,13 @@ msgid "" ":class:`aiogram.methods.get_chat.GetChat`." msgstr "" +#: ../../docstring aiogram.types.chat.Chat.emoji_status_expiration_date:1 of +msgid "" +"*Optional*. Expiration date of the emoji status of the other party in a " +"private chat in Unix time, if any. Returned only in " +":class:`aiogram.methods.get_chat.GetChat`." +msgstr "" + #: ../../docstring aiogram.types.chat.Chat.bio:1 of msgid "" "*Optional*. Bio of the other party in a private chat. Returned only in " @@ -264,6 +271,7 @@ msgstr "" #: aiogram.types.chat.Chat.set_sticker_set:4 #: aiogram.types.chat.Chat.set_title:4 aiogram.types.chat.Chat.unban:4 #: aiogram.types.chat.Chat.unban_sender_chat:4 +#: aiogram.types.chat.Chat.unpin_all_general_forum_topic_messages:4 #: aiogram.types.chat.Chat.unpin_all_messages:4 #: aiogram.types.chat.Chat.unpin_message:4 of msgid ":code:`chat_id`" @@ -320,6 +328,7 @@ msgstr "" #: aiogram.types.chat.Chat.set_permissions aiogram.types.chat.Chat.set_photo #: aiogram.types.chat.Chat.set_sticker_set aiogram.types.chat.Chat.set_title #: aiogram.types.chat.Chat.unban aiogram.types.chat.Chat.unban_sender_chat +#: aiogram.types.chat.Chat.unpin_all_general_forum_topic_messages #: aiogram.types.chat.Chat.unpin_all_messages #: aiogram.types.chat.Chat.unpin_message of msgid "Returns" @@ -988,38 +997,26 @@ msgstr "" #: aiogram.types.chat.Chat.promote:12 of msgid "" "Pass :code:`True` if the administrator can access the chat event log, " -"chat statistics, message statistics in channels, see channel members, see" -" anonymous administrators in supergroups and ignore slow mode. Implied by" -" any other administrator privilege" +"boost list in channels, see channel members, report spam messages, see " +"anonymous administrators in supergroups and ignore slow mode. Implied by " +"any other administrator privilege" msgstr "" #: aiogram.types.chat.Chat.promote:13 of -msgid "" -"Pass :code:`True` if the administrator can create channel posts, channels" -" only" -msgstr "" - -#: aiogram.types.chat.Chat.promote:14 of -msgid "" -"Pass :code:`True` if the administrator can edit messages of other users " -"and can pin messages, channels only" -msgstr "" - -#: aiogram.types.chat.Chat.promote:15 of msgid "Pass :code:`True` if the administrator can delete messages of other users" msgstr "" -#: aiogram.types.chat.Chat.promote:16 of +#: aiogram.types.chat.Chat.promote:14 of msgid "Pass :code:`True` if the administrator can manage video chats" msgstr "" -#: aiogram.types.chat.Chat.promote:17 of +#: aiogram.types.chat.Chat.promote:15 of msgid "" "Pass :code:`True` if the administrator can restrict, ban or unban chat " -"members" +"members, or access supergroup statistics" msgstr "" -#: aiogram.types.chat.Chat.promote:18 of +#: aiogram.types.chat.Chat.promote:16 of msgid "" "Pass :code:`True` if the administrator can add new administrators with a " "subset of their own privileges or demote administrators that they have " @@ -1027,27 +1024,57 @@ msgid "" "appointed by him)" msgstr "" -#: aiogram.types.chat.Chat.promote:19 of +#: aiogram.types.chat.Chat.promote:17 of msgid "" "Pass :code:`True` if the administrator can change chat title, photo and " "other settings" msgstr "" -#: aiogram.types.chat.Chat.promote:20 of +#: aiogram.types.chat.Chat.promote:18 of msgid "Pass :code:`True` if the administrator can invite new users to the chat" msgstr "" +#: aiogram.types.chat.Chat.promote:19 of +msgid "" +"Pass :code:`True` if the administrator can post messages in the channel, " +"or access channel statistics; channels only" +msgstr "" + +#: aiogram.types.chat.Chat.promote:20 of +msgid "" +"Pass :code:`True` if the administrator can edit messages of other users " +"and can pin messages; channels only" +msgstr "" + #: aiogram.types.chat.Chat.promote:21 of msgid "Pass :code:`True` if the administrator can pin messages, supergroups only" msgstr "" #: aiogram.types.chat.Chat.promote:22 of msgid "" +"Pass :code:`True` if the administrator can post stories in the channel; " +"channels only" +msgstr "" + +#: aiogram.types.chat.Chat.promote:23 of +msgid "" +"Pass :code:`True` if the administrator can edit stories posted by other " +"users; channels only" +msgstr "" + +#: aiogram.types.chat.Chat.promote:24 of +msgid "" +"Pass :code:`True` if the administrator can delete stories posted by other" +" users; channels only" +msgstr "" + +#: aiogram.types.chat.Chat.promote:25 of +msgid "" "Pass :code:`True` if the user is allowed to create, rename, close, and " "reopen forum topics, supergroups only" msgstr "" -#: aiogram.types.chat.Chat.promote:23 of +#: aiogram.types.chat.Chat.promote:26 of msgid "" "instance of method " ":class:`aiogram.methods.promote_chat_member.PromoteChatMember`" @@ -1078,7 +1105,7 @@ msgstr "" #: aiogram.types.chat.Chat.restrict:13 of msgid "" -"Date when restrictions will be lifted for the user, unix time. If user is" +"Date when restrictions will be lifted for the user; Unix time. If user is" " restricted for more than 366 days or less than 30 seconds from the " "current time, they are considered to be restricted forever" msgstr "" @@ -1145,7 +1172,7 @@ msgstr "" #: aiogram.types.chat.Chat.ban:11 of msgid "" -"Date when the user will be unbanned, unix time. If user is banned for " +"Date when the user will be unbanned; Unix time. If user is banned for " "more than 366 days or less than 30 seconds from the current time they are" " considered to be banned forever. Applied for supergroups and channels " "only." @@ -1269,6 +1296,33 @@ msgstr "" msgid "instance of method :class:`aiogram.methods.set_chat_photo.SetChatPhoto`" msgstr "" +#: aiogram.types.chat.Chat.unpin_all_general_forum_topic_messages:1 of +msgid "" +"Shortcut for method " +":class:`aiogram.methods.unpin_all_general_forum_topic_messages.UnpinAllGeneralForumTopicMessages`" +" will automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat.Chat.unpin_all_general_forum_topic_messages:6 of +msgid "" +"Use this method to clear the list of pinned messages in a General forum " +"topic. The bot must be an administrator in the chat for this to work and " +"must have the *can_pin_messages* administrator right in the supergroup. " +"Returns :code:`True` on success." +msgstr "" + +#: aiogram.types.chat.Chat.unpin_all_general_forum_topic_messages:8 of +msgid "" +"Source: " +"https://core.telegram.org/bots/api#unpinallgeneralforumtopicmessages" +msgstr "" + +#: aiogram.types.chat.Chat.unpin_all_general_forum_topic_messages:10 of +msgid "" +"instance of method " +":class:`aiogram.methods.unpin_all_general_forum_topic_messages.UnpinAllGeneralForumTopicMessages`" +msgstr "" + #~ msgid "" #~ "Use this method to get information " #~ "about a member of a chat. The " @@ -1289,3 +1343,55 @@ msgstr "" #~ " him)" #~ msgstr "" +#~ msgid "" +#~ "*Optional*. Expiration date of the emoji" +#~ " status of the other party in a" +#~ " private chat, if any. Returned only" +#~ " in :class:`aiogram.methods.get_chat.GetChat`." +#~ msgstr "" + +#~ msgid "" +#~ "Date when restrictions will be lifted" +#~ " for the user, unix time. If " +#~ "user is restricted for more than " +#~ "366 days or less than 30 seconds" +#~ " from the current time, they are " +#~ "considered to be restricted forever" +#~ msgstr "" + +#~ msgid "" +#~ "Date when the user will be " +#~ "unbanned, unix time. If user is " +#~ "banned for more than 366 days or" +#~ " less than 30 seconds from the " +#~ "current time they are considered to " +#~ "be banned forever. Applied for " +#~ "supergroups and channels only." +#~ msgstr "" + +#~ msgid "" +#~ "Pass :code:`True` if the administrator " +#~ "can access the chat event log, " +#~ "chat statistics, message statistics in " +#~ "channels, see channel members, see " +#~ "anonymous administrators in supergroups and" +#~ " ignore slow mode. Implied by any " +#~ "other administrator privilege" +#~ msgstr "" + +#~ msgid "" +#~ "Pass :code:`True` if the administrator " +#~ "can create channel posts, channels only" +#~ msgstr "" + +#~ msgid "" +#~ "Pass :code:`True` if the administrator " +#~ "can edit messages of other users " +#~ "and can pin messages, channels only" +#~ msgstr "" + +#~ msgid "" +#~ "Pass :code:`True` if the administrator " +#~ "can restrict, ban or unban chat " +#~ "members" +#~ msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_administrator_rights.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_administrator_rights.po index 519189b1..2ddb6393 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_administrator_rights.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_administrator_rights.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-02-12 00:22+0200\n" +"POT-Creation-Date: 2023-10-29 02:16+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.13.1\n" #: ../../api/types/chat_administrator_rights.rst:3 msgid "ChatAdministratorRights" @@ -39,8 +39,8 @@ msgstr "" #: aiogram.types.chat_administrator_rights.ChatAdministratorRights.can_manage_chat:1 #: of msgid "" -":code:`True`, if the administrator can access the chat event log, chat " -"statistics, message statistics in channels, see channel members, see " +":code:`True`, if the administrator can access the chat event log, boost " +"list in channels, see channel members, report spam messages, see " "anonymous administrators in supergroups and ignore slow mode. Implied by " "any other administrator privilege" msgstr "" @@ -60,7 +60,9 @@ msgstr "" #: ../../docstring #: aiogram.types.chat_administrator_rights.ChatAdministratorRights.can_restrict_members:1 #: of -msgid ":code:`True`, if the administrator can restrict, ban or unban chat members" +msgid "" +":code:`True`, if the administrator can restrict, ban or unban chat " +"members, or access supergroup statistics" msgstr "" #: ../../docstring @@ -91,8 +93,8 @@ msgstr "" #: aiogram.types.chat_administrator_rights.ChatAdministratorRights.can_post_messages:1 #: of msgid "" -"*Optional*. :code:`True`, if the administrator can post in the channel; " -"channels only" +"*Optional*. :code:`True`, if the administrator can post messages in the " +"channel, or access channel statistics; channels only" msgstr "" #: ../../docstring @@ -111,6 +113,30 @@ msgid "" "and supergroups only" msgstr "" +#: ../../docstring +#: aiogram.types.chat_administrator_rights.ChatAdministratorRights.can_post_stories:1 +#: of +msgid "" +"*Optional*. :code:`True`, if the administrator can post stories in the " +"channel; channels only" +msgstr "" + +#: ../../docstring +#: aiogram.types.chat_administrator_rights.ChatAdministratorRights.can_edit_stories:1 +#: of +msgid "" +"*Optional*. :code:`True`, if the administrator can edit stories posted by" +" other users; channels only" +msgstr "" + +#: ../../docstring +#: aiogram.types.chat_administrator_rights.ChatAdministratorRights.can_delete_stories:1 +#: of +msgid "" +"*Optional*. :code:`True`, if the administrator can delete stories posted " +"by other users; channels only" +msgstr "" + #: ../../docstring #: aiogram.types.chat_administrator_rights.ChatAdministratorRights.can_manage_topics:1 #: of @@ -129,3 +155,46 @@ msgstr "" #~ "the user)" #~ msgstr "" +#~ msgid "" +#~ ":code:`True`, if the administrator can " +#~ "access the chat event log, chat " +#~ "statistics, message statistics in channels," +#~ " see channel members, see anonymous " +#~ "administrators in supergroups and ignore " +#~ "slow mode. Implied by any other " +#~ "administrator privilege" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. :code:`True`, if the administrator" +#~ " can post in the channel; channels" +#~ " only" +#~ msgstr "" + +#~ msgid "" +#~ ":code:`True`, if the administrator can " +#~ "access the chat event log, chat " +#~ "statistics, boost list in channels, " +#~ "message statistics in channels, see " +#~ "channel members, see anonymous administrators" +#~ " in supergroups and ignore slow mode." +#~ " Implied by any other administrator " +#~ "privilege" +#~ msgstr "" + +#~ msgid "" +#~ ":code:`True`, if the administrator can " +#~ "restrict, ban or unban chat members" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. :code:`True`, if the administrator" +#~ " can post messages in the channel;" +#~ " channels only" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. :code:`True`, if the administrator" +#~ " can delete stories posted by other" +#~ " users" +#~ msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_join_request.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_join_request.po index beaee2ea..f66a9047 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_join_request.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_join_request.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-02-12 00:22+0200\n" +"POT-Creation-Date: 2023-10-29 02:16+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.13.1\n" #: ../../api/types/chat_join_request.rst:3 msgid "ChatJoinRequest" @@ -46,7 +46,7 @@ msgid "" "languages may have difficulty/silent defects in interpreting it. But it " "has at most 52 significant bits, so a 64-bit integer or double-precision " "float type are safe for storing this identifier. The bot can use this " -"identifier for 24 hours to send messages until the join request is " +"identifier for 5 minutes to send messages until the join request is " "processed, assuming no other administrator contacted the user." msgstr "" @@ -72,6 +72,40 @@ msgid "" " will automatically fill method attributes:" msgstr "" +#: aiogram.types.chat_join_request.ChatJoinRequest.answer:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact_pm:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice_pm:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document_pm:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game_pm:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location_pm:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group_pm:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo_pm:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_pm:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker_pm:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note_pm:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice:4 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice_pm:4 #: aiogram.types.chat_join_request.ChatJoinRequest.approve:4 #: aiogram.types.chat_join_request.ChatJoinRequest.decline:4 of msgid ":code:`chat_id`" @@ -93,6 +127,40 @@ msgstr "" msgid "Source: https://core.telegram.org/bots/api#approvechatjoinrequest" msgstr "" +#: aiogram.types.chat_join_request.ChatJoinRequest.answer +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice_pm #: aiogram.types.chat_join_request.ChatJoinRequest.approve #: aiogram.types.chat_join_request.ChatJoinRequest.decline of msgid "Returns" @@ -128,9 +196,1441 @@ msgid "" ":class:`aiogram.methods.decline_chat_join_request.DeclineChatJoinRequest`" msgstr "" +#: aiogram.types.chat_join_request.ChatJoinRequest.answer:1 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_pm:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_message.SendMessage` " +"will automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer:6 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_pm:6 of +msgid "" +"Use this method to send text messages. On success, the sent " +":class:`aiogram.types.message.Message` is returned." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer:8 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_pm:8 of +msgid "Source: https://core.telegram.org/bots/api#sendmessage" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice_pm of +msgid "Parameters" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer:10 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_pm:10 of +msgid "Text of the message to be sent, 1-4096 characters after entities parsing" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact_pm:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice:10 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice_pm:10 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document_pm:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game_pm:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location_pm:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group_pm:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo_pm:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_pm:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker_pm:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note_pm:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice_pm:11 of +msgid "" +"Unique identifier for the target message thread (topic) of the forum; for" +" forum supergroups only" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_pm:12 of +msgid "" +"Mode for parsing entities in the message text. See `formatting options " +"`_ for more " +"details." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer:13 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_pm:13 of +msgid "" +"A JSON-serialized list of special entities that appear in message text, " +"which can be specified instead of *parse_mode*" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_pm:14 of +msgid "Disables link previews for links in this message" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation:20 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm:20 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio:20 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm:20 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact_pm:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice_pm:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document_pm:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game_pm:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:32 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:32 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location_pm:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo_pm:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_pm:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:23 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:23 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker:13 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker_pm:13 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue:19 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm:19 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video:21 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note_pm:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm:21 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice_pm:16 of +msgid "" +"Sends the message `silently `_. Users will receive a notification with no sound." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation:21 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm:21 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio:21 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm:21 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact_pm:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document:18 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document_pm:18 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game:13 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game_pm:13 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:33 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:33 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location:18 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location_pm:18 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo_pm:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_pm:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:24 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:24 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker_pm:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue:20 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm:20 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video:22 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note_pm:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm:22 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice_pm:17 of +msgid "Protects the contents of the sent message from forwarding and saving" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation:22 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm:22 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio:22 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm:22 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact_pm:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice_pm:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document:19 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document_pm:19 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game_pm:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:34 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:34 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location:19 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location_pm:19 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo:18 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo_pm:18 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_pm:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:25 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:25 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker_pm:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue:21 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm:21 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video:23 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note_pm:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm:23 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice:18 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice_pm:18 of +msgid "If the message is a reply, ID of the original message" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer:18 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation:23 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm:23 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio:23 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm:23 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact:18 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact_pm:18 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice_pm:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document:20 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document_pm:20 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game_pm:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:35 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:35 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location:20 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location_pm:20 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group_pm:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo:19 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo_pm:19 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_pm:18 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:26 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:26 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker_pm:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue:22 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm:22 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video:24 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note:18 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note_pm:18 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm:24 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice:19 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice_pm:19 of +msgid "" +"Pass :code:`True` if the message should be sent even if the specified " +"replied-to message is not found" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer:19 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation:24 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm:24 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio:24 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm:24 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact:19 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact_pm:19 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice_pm:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document:21 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document_pm:21 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location:21 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location_pm:21 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo:20 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo_pm:20 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_pm:19 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:27 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:27 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker_pm:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue:23 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm:23 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video:25 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note:19 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note_pm:19 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm:25 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice:20 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice_pm:20 of +msgid "" +"Additional interface options. A JSON-serialized object for an `inline " +"keyboard `_, " +"`custom reply keyboard " +"`_, instructions to " +"remove reply keyboard or to force a reply from the user." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer:20 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_pm:20 of +msgid "instance of method :class:`aiogram.methods.send_message.SendMessage`" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation:1 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_animation.SendAnimation`" +" will automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation:6 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm:6 of +msgid "" +"Use this method to send animation files (GIF or H.264/MPEG-4 AVC video " +"without sound). On success, the sent " +":class:`aiogram.types.message.Message` is returned. Bots can currently " +"send animation files of up to 50 MB in size, this limit may be changed in" +" the future." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation:8 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm:8 of +msgid "Source: https://core.telegram.org/bots/api#sendanimation" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation:10 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm:10 of +msgid "" +"Animation to send. Pass a file_id as String to send an animation that " +"exists on the Telegram servers (recommended), pass an HTTP URL as a " +"String for Telegram to get an animation from the Internet, or upload a " +"new animation using multipart/form-data. :ref:`More information on " +"Sending Files » `" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm:12 of +msgid "Duration of sent animation in seconds" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation:13 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm:13 of +msgid "Animation width" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm:14 of +msgid "Animation height" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio:19 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm:19 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document_pm:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note_pm:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm:15 of +msgid "" +"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 » `" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm:16 of +msgid "" +"Animation caption (may also be used when resending animation by " +"*file_id*), 0-1024 characters after entities parsing" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm:17 of +msgid "" +"Mode for parsing entities in the animation caption. See `formatting " +"options `_ for " +"more details." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation:18 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm:18 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document_pm:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo_pm:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video:18 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm:18 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice_pm:14 of +msgid "" +"A JSON-serialized list of special entities that appear in the caption, " +"which can be specified instead of *parse_mode*" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation:19 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm:19 of +msgid "" +"Pass :code:`True` if the animation needs to be covered with a spoiler " +"animation" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation:25 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_animation_pm:25 of +msgid "instance of method :class:`aiogram.methods.send_animation.SendAnimation`" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio:1 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_audio.SendAudio` will " +"automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio:6 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm:6 of +msgid "" +"Use this method to send audio files, if you want Telegram clients to " +"display them in the music player. Your audio must be in the .MP3 or .M4A " +"format. On success, the sent :class:`aiogram.types.message.Message` is " +"returned. Bots can currently send audio files of up to 50 MB in size, " +"this limit may be changed in the future. For sending voice messages, use " +"the :class:`aiogram.methods.send_voice.SendVoice` method instead." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio:9 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm:9 of +msgid "Source: https://core.telegram.org/bots/api#sendaudio" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm:11 of +msgid "" +"Audio file to send. Pass a file_id as String to send an audio file that " +"exists on the Telegram servers (recommended), pass an HTTP URL as a " +"String for Telegram to get an audio file from the Internet, or upload a " +"new one using multipart/form-data. :ref:`More information on Sending " +"Files » `" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio:13 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm:13 of +msgid "Audio caption, 0-1024 characters after entities parsing" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm:14 of +msgid "" +"Mode for parsing entities in the audio caption. See `formatting options " +"`_ for more " +"details." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm:16 of +msgid "Duration of the audio in seconds" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm:17 of +msgid "Performer" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio:18 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm:18 of +msgid "Track name" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio:25 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_audio_pm:25 of +msgid "instance of method :class:`aiogram.methods.send_audio.SendAudio`" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact:1 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact_pm:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_contact.SendContact` " +"will automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact:6 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact_pm:6 of +msgid "" +"Use this method to send phone contacts. On success, the sent " +":class:`aiogram.types.message.Message` is returned." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact:8 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact_pm:8 of +msgid "Source: https://core.telegram.org/bots/api#sendcontact" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact:10 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact_pm:10 of +msgid "Contact's phone number" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact_pm:11 of +msgid "Contact's first name" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact:13 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact_pm:13 of +msgid "Contact's last name" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact_pm:14 of +msgid "" +"Additional data about the contact in the form of a `vCard " +"`_, 0-2048 bytes" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact:20 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_contact_pm:20 of +msgid "instance of method :class:`aiogram.methods.send_contact.SendContact`" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document:1 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document_pm:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_document.SendDocument` " +"will automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document:6 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document_pm:6 of +msgid "" +"Use this method to send general files. On success, the sent " +":class:`aiogram.types.message.Message` is returned. Bots can currently " +"send files of any type of up to 50 MB in size, this limit may be changed " +"in the future." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document:8 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document_pm:8 of +msgid "Source: https://core.telegram.org/bots/api#senddocument" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document:10 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document_pm:10 of +msgid "" +"File to send. Pass a file_id as String to send a file that exists on the " +"Telegram servers (recommended), 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 » `" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document:13 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document_pm:13 of +msgid "" +"Document caption (may also be used when resending documents by " +"*file_id*), 0-1024 characters after entities parsing" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document_pm:14 of +msgid "" +"Mode for parsing entities in the document caption. See `formatting " +"options `_ for " +"more details." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document_pm:16 of +msgid "" +"Disables automatic server-side content type detection for files uploaded " +"using multipart/form-data" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document:22 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_document_pm:22 of +msgid "instance of method :class:`aiogram.methods.send_document.SendDocument`" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game:1 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game_pm:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_game.SendGame` will " +"automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game:6 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game_pm:6 of +msgid "" +"Use this method to send a game. On success, the sent " +":class:`aiogram.types.message.Message` is returned." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game:8 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game_pm:8 of +msgid "Source: https://core.telegram.org/bots/api#sendgame" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game:10 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game_pm:10 of +msgid "" +"Short name of the game, serves as the unique identifier for the game. Set" +" up your games via `@BotFather `_." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game_pm:16 of +msgid "" +"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." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_game_pm:17 of +msgid "instance of method :class:`aiogram.methods.send_game.SendGame`" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:1 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_invoice.SendInvoice` " +"will automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:6 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:6 of +msgid "" +"Use this method to send invoices. On success, the sent " +":class:`aiogram.types.message.Message` is returned." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:8 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:8 of +msgid "Source: https://core.telegram.org/bots/api#sendinvoice" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:10 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:10 of +msgid "Product name, 1-32 characters" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:11 of +msgid "Product description, 1-255 characters" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:12 of +msgid "" +"Bot-defined invoice payload, 1-128 bytes. This will not be displayed to " +"the user, use for your internal processes." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:13 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:13 of +msgid "" +"Payment provider token, obtained via `@BotFather " +"`_" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:14 of +msgid "" +"Three-letter ISO 4217 currency code, see `more on currencies " +"`_" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:15 of +msgid "" +"Price breakdown, a JSON-serialized list of components (e.g. product " +"price, tax, discount, delivery cost, delivery tax, bonus, etc.)" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:17 of +msgid "" +"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" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:18 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:18 of +msgid "" +"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*." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:19 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:19 of +msgid "" +"Unique deep-linking parameter. If left empty, **forwarded copies** of the" +" sent message will have a *Pay* button, allowing multiple users to pay " +"directly from the forwarded message, using the same invoice. If non-" +"empty, forwarded copies of the sent message will have a *URL* button with" +" a deep link to the bot (instead of a *Pay* button), with the value used " +"as the start parameter" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:20 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:20 of +msgid "" +"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." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:21 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:21 of +msgid "" +"URL of the product photo for the invoice. Can be a photo of the goods or " +"a marketing image for a service. People like it better when they see what" +" they are paying for." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:22 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:22 of +msgid "Photo size in bytes" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:23 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:23 of +msgid "Photo width" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:24 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:24 of +msgid "Photo height" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:25 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:25 of +msgid "" +"Pass :code:`True` if you require the user's full name to complete the " +"order" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:26 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:26 of +msgid "" +"Pass :code:`True` if you require the user's phone number to complete the " +"order" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:27 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:27 of +msgid "" +"Pass :code:`True` if you require the user's email address to complete the" +" order" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:28 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:28 of +msgid "" +"Pass :code:`True` if you require the user's shipping address to complete " +"the order" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:29 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:29 of +msgid "Pass :code:`True` if the user's phone number should be sent to provider" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:30 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:30 of +msgid "Pass :code:`True` if the user's email address should be sent to provider" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:31 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:31 of +msgid "Pass :code:`True` if the final price depends on the shipping method" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:36 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:36 of +msgid "" +"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." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice:37 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_invoice_pm:37 of +msgid "instance of method :class:`aiogram.methods.send_invoice.SendInvoice`" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location:1 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location_pm:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_location.SendLocation` " +"will automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location:6 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location_pm:6 of +msgid "" +"Use this method to send point on the map. On success, the sent " +":class:`aiogram.types.message.Message` is returned." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location:8 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location_pm:8 of +msgid "Source: https://core.telegram.org/bots/api#sendlocation" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location:10 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location_pm:10 of +msgid "Latitude of the location" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location_pm:11 of +msgid "Longitude of the location" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location:13 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location_pm:13 of +msgid "The radius of uncertainty for the location, measured in meters; 0-1500" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location_pm:14 of +msgid "" +"Period in seconds for which the location will be updated (see `Live " +"Locations `_, should be between" +" 60 and 86400." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location_pm:15 of +msgid "" +"For live locations, a direction in which the user is moving, in degrees. " +"Must be between 1 and 360 if specified." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location_pm:16 of +msgid "" +"For live locations, a maximum distance for proximity alerts about " +"approaching another chat member, in meters. Must be between 1 and 100000 " +"if specified." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location:22 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_location_pm:22 of +msgid "instance of method :class:`aiogram.methods.send_location.SendLocation`" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group:1 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group_pm:1 of +msgid "" +"Shortcut for method " +":class:`aiogram.methods.send_media_group.SendMediaGroup` will " +"automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group:6 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group_pm:6 of +msgid "" +"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." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group:8 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group_pm:8 of +msgid "Source: https://core.telegram.org/bots/api#sendmediagroup" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group:10 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group_pm:10 of +msgid "" +"A JSON-serialized array describing messages to be sent, must include 2-10" +" items" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group_pm:12 of +msgid "" +"Sends messages `silently `_. Users will receive a notification with no sound." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group:13 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group_pm:13 of +msgid "Protects the contents of the sent messages from forwarding and saving" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group_pm:14 of +msgid "If the messages are a reply, ID of the original message" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_media_group_pm:16 of +msgid "" +"instance of method " +":class:`aiogram.methods.send_media_group.SendMediaGroup`" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo:1 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo_pm:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_photo.SendPhoto` will " +"automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo:6 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo_pm:6 of +msgid "" +"Use this method to send photos. On success, the sent " +":class:`aiogram.types.message.Message` is returned." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo:8 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo_pm:8 of +msgid "Source: https://core.telegram.org/bots/api#sendphoto" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo:10 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo_pm:10 of +msgid "" +"Photo to send. Pass a file_id as String to send a photo that exists on " +"the Telegram servers (recommended), pass an HTTP URL as a String for " +"Telegram to get a photo from the Internet, or upload a new photo using " +"multipart/form-data. The photo must be at most 10 MB in size. The photo's" +" width and height must not exceed 10000 in total. Width and height ratio " +"must be at most 20. :ref:`More information on Sending Files » `" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo_pm:12 of +msgid "" +"Photo caption (may also be used when resending photos by *file_id*), " +"0-1024 characters after entities parsing" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo:13 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo_pm:13 of +msgid "" +"Mode for parsing entities in the photo caption. See `formatting options " +"`_ for more " +"details." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo_pm:15 of +msgid "" +"Pass :code:`True` if the photo needs to be covered with a spoiler " +"animation" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo:21 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_photo_pm:21 of +msgid "instance of method :class:`aiogram.methods.send_photo.SendPhoto`" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:1 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_poll.SendPoll` will " +"automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:6 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:6 of +msgid "" +"Use this method to send a native poll. On success, the sent " +":class:`aiogram.types.message.Message` is returned." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:8 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:8 of +msgid "Source: https://core.telegram.org/bots/api#sendpoll" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:10 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:10 of +msgid "Poll question, 1-300 characters" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:11 of +msgid "" +"A JSON-serialized list of answer options, 2-10 strings 1-100 characters " +"each" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:13 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:13 of +msgid ":code:`True`, if the poll needs to be anonymous, defaults to :code:`True`" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:14 of +msgid "Poll type, 'quiz' or 'regular', defaults to 'regular'" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:15 of +msgid "" +":code:`True`, if the poll allows multiple answers, ignored for polls in " +"quiz mode, defaults to :code:`False`" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:16 of +msgid "" +"0-based identifier of the correct answer option, required for polls in " +"quiz mode" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:17 of +msgid "" +"Text that is shown when a user chooses an incorrect answer or taps on the" +" lamp icon in a quiz-style poll, 0-200 characters with at most 2 line " +"feeds after entities parsing" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:18 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:18 of +msgid "" +"Mode for parsing entities in the explanation. See `formatting options " +"`_ for more " +"details." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:19 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:19 of +msgid "" +"A JSON-serialized list of special entities that appear in the poll " +"explanation, which can be specified instead of *parse_mode*" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:20 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:20 of +msgid "" +"Amount of time in seconds the poll will be active after creation, 5-600. " +"Can't be used together with *close_date*." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:21 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:21 of +msgid "" +"Point in time (Unix timestamp) when the poll will be automatically " +"closed. Must be at least 5 and no more than 600 seconds in the future. " +"Can't be used together with *open_period*." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:22 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:22 of +msgid "" +"Pass :code:`True` if the poll needs to be immediately closed. This can be" +" useful for poll preview." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll:28 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_poll_pm:28 of +msgid "instance of method :class:`aiogram.methods.send_poll.SendPoll`" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice:1 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice_pm:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_dice.SendDice` will " +"automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice:6 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice_pm:6 of +msgid "" +"Use this method to send an animated emoji that will display a random " +"value. On success, the sent :class:`aiogram.types.message.Message` is " +"returned." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice:8 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice_pm:8 of +msgid "Source: https://core.telegram.org/bots/api#senddice" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice_pm:11 of +msgid "" +"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 '🎲'" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice:13 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice_pm:13 of +msgid "Protects the contents of the sent message from forwarding" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_dice_pm:17 of +msgid "instance of method :class:`aiogram.methods.send_dice.SendDice`" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker:1 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker_pm:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_sticker.SendSticker` " +"will automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker:6 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker_pm:6 of +msgid "" +"Use this method to send static .WEBP, `animated " +"`_ .TGS, or `video " +"`_ .WEBM " +"stickers. On success, the sent :class:`aiogram.types.message.Message` is " +"returned." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker:8 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker_pm:8 of +msgid "Source: https://core.telegram.org/bots/api#sendsticker" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker:10 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker_pm:10 of +msgid "" +"Sticker to send. Pass a file_id as String to send a file that exists on " +"the Telegram servers (recommended), pass an HTTP URL as a String for " +"Telegram to get a .WEBP sticker from the Internet, or upload a new .WEBP " +"or .TGS sticker using multipart/form-data. :ref:`More information on " +"Sending Files » `. Video stickers can only be sent by a " +"file_id. Animated stickers can't be sent via an HTTP URL." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker_pm:12 of +msgid "Emoji associated with the sticker; only for just uploaded stickers" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker:18 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_sticker_pm:18 of +msgid "instance of method :class:`aiogram.methods.send_sticker.SendSticker`" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue:1 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_venue.SendVenue` will " +"automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue:6 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm:6 of +msgid "" +"Use this method to send information about a venue. On success, the sent " +":class:`aiogram.types.message.Message` is returned." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue:8 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm:8 of +msgid "Source: https://core.telegram.org/bots/api#sendvenue" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue:10 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm:10 of +msgid "Latitude of the venue" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue:11 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm:11 of +msgid "Longitude of the venue" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm:12 of +msgid "Name of the venue" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue:13 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm:13 of +msgid "Address of the venue" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm:15 of +msgid "Foursquare identifier of the venue" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm:16 of +msgid "" +"Foursquare type of the venue, if known. (For example, " +"'arts_entertainment/default', 'arts_entertainment/aquarium' or " +"'food/icecream'.)" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm:17 of +msgid "Google Places identifier of the venue" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue:18 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm:18 of +msgid "" +"Google Places type of the venue. (See `supported types " +"`_.)" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue:24 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_venue_pm:24 of +msgid "instance of method :class:`aiogram.methods.send_venue.SendVenue`" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video:1 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_video.SendVideo` will " +"automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video:6 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm:6 of +msgid "" +"Use this method to send video files, Telegram clients support MPEG4 " +"videos (other formats may be sent as " +":class:`aiogram.types.document.Document`). On success, the sent " +":class:`aiogram.types.message.Message` is returned. Bots can currently " +"send video files of up to 50 MB in size, this limit may be changed in the" +" future." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video:8 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm:8 of +msgid "Source: https://core.telegram.org/bots/api#sendvideo" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video:10 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm:10 of +msgid "" +"Video to send. Pass a file_id as String to send a video that exists on " +"the Telegram servers (recommended), pass an HTTP URL as a String for " +"Telegram to get a video from the Internet, or upload a new video using " +"multipart/form-data. :ref:`More information on Sending Files » `" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note_pm:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm:12 of +msgid "Duration of sent video in seconds" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video:13 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm:13 of +msgid "Video width" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video:14 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm:14 of +msgid "Video height" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video:16 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm:16 of +msgid "" +"Video caption (may also be used when resending videos by *file_id*), " +"0-1024 characters after entities parsing" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video:17 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm:17 of +msgid "" +"Mode for parsing entities in the video caption. See `formatting options " +"`_ for more " +"details." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video:19 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm:19 of +msgid "" +"Pass :code:`True` if the video needs to be covered with a spoiler " +"animation" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video:20 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm:20 of +msgid "Pass :code:`True` if the uploaded video is suitable for streaming" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video:26 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_pm:26 of +msgid "instance of method :class:`aiogram.methods.send_video.SendVideo`" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note:1 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note_pm:1 of +msgid "" +"Shortcut for method " +":class:`aiogram.methods.send_video_note.SendVideoNote` will automatically" +" fill method attributes:" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note:6 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note_pm:6 of +msgid "" +"As of `v.4.0 `_, " +"Telegram clients support rounded square MPEG4 videos of up to 1 minute " +"long. Use this method to send video messages. On success, the sent " +":class:`aiogram.types.message.Message` is returned." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note:8 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note_pm:8 of +msgid "Source: https://core.telegram.org/bots/api#sendvideonote" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note:10 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note_pm:10 of +msgid "" +"Video note to send. Pass a file_id as String to send a video note that " +"exists on the Telegram servers (recommended) or upload a new video using " +"multipart/form-data. :ref:`More information on Sending Files » `. Sending video notes by a URL is currently unsupported" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note:13 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note_pm:13 of +msgid "Video width and height, i.e. diameter of the video message" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note:20 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_video_note_pm:20 of +msgid "instance of method :class:`aiogram.methods.send_video_note.SendVideoNote`" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice:1 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice_pm:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_voice.SendVoice` will " +"automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice:6 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice_pm:6 of +msgid "" +"Use this method to send audio files, if you want Telegram clients to " +"display the file as a playable voice message. For this to work, your " +"audio must be in an .OGG file encoded with OPUS (other formats may be " +"sent as :class:`aiogram.types.audio.Audio` or " +":class:`aiogram.types.document.Document`). On success, the sent " +":class:`aiogram.types.message.Message` is returned. Bots can currently " +"send voice messages of up to 50 MB in size, this limit may be changed in " +"the future." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice:8 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice_pm:8 of +msgid "Source: https://core.telegram.org/bots/api#sendvoice" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice:10 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice_pm:10 of +msgid "" +"Audio file to send. Pass a file_id as String to send a file that exists " +"on the Telegram servers (recommended), 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 » `" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice:12 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice_pm:12 of +msgid "Voice message caption, 0-1024 characters after entities parsing" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice:13 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice_pm:13 of +msgid "" +"Mode for parsing entities in the voice message caption. See `formatting " +"options `_ for " +"more details." +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice:15 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice_pm:15 of +msgid "Duration of the voice message in seconds" +msgstr "" + +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice:21 +#: aiogram.types.chat_join_request.ChatJoinRequest.answer_voice_pm:21 of +msgid "instance of method :class:`aiogram.methods.send_voice.SendVoice`" +msgstr "" + #~ msgid "Use this method to approve a chat join request." #~ msgstr "" #~ msgid "Use this method to decline a chat join request." #~ msgstr "" +#~ msgid "" +#~ "Identifier of a private chat with " +#~ "the user who sent the join " +#~ "request. This number may have more " +#~ "than 32 significant bits and some " +#~ "programming languages may have " +#~ "difficulty/silent defects in interpreting it." +#~ " But it has at most 52 " +#~ "significant bits, so a 64-bit integer" +#~ " or double-precision float type are" +#~ " safe for storing this identifier. " +#~ "The bot can use this identifier " +#~ "for 24 hours to send messages " +#~ "until the join request is processed, " +#~ "assuming no other administrator contacted " +#~ "the user." +#~ msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_member.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_member.po index 6f46ae07..49bf21a4 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_member.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_member.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-02-12 00:22+0200\n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/types/chat_member.rst:3 msgid "ChatMember" @@ -55,162 +55,6 @@ msgstr "" msgid "Source: https://core.telegram.org/bots/api#chatmember" msgstr "" -#: ../../docstring aiogram.types.chat_member.ChatMember.status:1 of -msgid "The member's status in the chat" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.user:1 of -msgid "*Optional*. Information about the user" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.is_anonymous:1 of -msgid "*Optional*. :code:`True`, if the user's presence in the chat is hidden" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.custom_title:1 of -msgid "*Optional*. Custom title for this user" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_be_edited:1 of -msgid "" -"*Optional*. :code:`True`, if the bot is allowed to edit administrator " -"privileges of that user" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_manage_chat:1 of -msgid "" -"*Optional*. :code:`True`, if the administrator can access the chat event " -"log, chat statistics, message statistics in channels, see channel " -"members, see anonymous administrators in supergroups and ignore slow " -"mode. Implied by any other administrator privilege" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_delete_messages:1 -#: of -msgid "" -"*Optional*. :code:`True`, if the administrator can delete messages of " -"other users" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member.ChatMember.can_manage_video_chats:1 of -msgid "*Optional*. :code:`True`, if the administrator can manage video chats" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_restrict_members:1 -#: of -msgid "" -"*Optional*. :code:`True`, if the administrator can restrict, ban or unban" -" chat members" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_promote_members:1 -#: of -msgid "" -"*Optional*. :code:`True`, if the administrator can add new administrators" -" with a subset of their own privileges or demote administrators that they" -" have promoted, directly or indirectly (promoted by administrators that " -"were appointed by the user)" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_change_info:1 of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to change the chat " -"title, photo and other settings" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_invite_users:1 of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to invite new users to " -"the chat" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_post_messages:1 of -msgid "" -"*Optional*. :code:`True`, if the administrator can post in the channel; " -"channels only" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_edit_messages:1 of -msgid "" -"*Optional*. :code:`True`, if the administrator can edit messages of other" -" users and can pin messages; channels only" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_pin_messages:1 of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to pin messages; groups " -"and supergroups only" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_manage_topics:1 of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to create, rename, " -"close, and reopen forum topics; supergroups only" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.is_member:1 of -msgid "" -"*Optional*. :code:`True`, if the user is a member of the chat at the " -"moment of the request" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_send_messages:1 of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to send text messages, " -"contacts, invoices, locations and venues" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_send_audios:1 of -msgid "*Optional*. :code:`True`, if the user is allowed to send audios" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_send_documents:1 of -msgid "*Optional*. :code:`True`, if the user is allowed to send documents" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_send_photos:1 of -msgid "*Optional*. :code:`True`, if the user is allowed to send photos" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_send_videos:1 of -msgid "*Optional*. :code:`True`, if the user is allowed to send videos" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_send_video_notes:1 -#: of -msgid "*Optional*. :code:`True`, if the user is allowed to send video notes" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_send_voice_notes:1 -#: of -msgid "*Optional*. :code:`True`, if the user is allowed to send voice notes" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.can_send_polls:1 of -msgid "*Optional*. :code:`True`, if the user is allowed to send polls" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member.ChatMember.can_send_other_messages:1 of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to send animations, " -"games, stickers and use inline bots" -msgstr "" - -#: ../../docstring -#: aiogram.types.chat_member.ChatMember.can_add_web_page_previews:1 of -msgid "" -"*Optional*. :code:`True`, if the user is allowed to add web page previews" -" to their messages" -msgstr "" - -#: ../../docstring aiogram.types.chat_member.ChatMember.until_date:1 of -msgid "" -"*Optional*. Date when restrictions will be lifted for this user; unix " -"time. If 0, then the user is restricted forever" -msgstr "" - #~ msgid "..." #~ msgstr "" @@ -237,3 +81,143 @@ msgstr "" #~ " notes" #~ msgstr "" +#~ msgid "The member's status in the chat" +#~ msgstr "" + +#~ msgid "*Optional*. Information about the user" +#~ msgstr "" + +#~ msgid "*Optional*. :code:`True`, if the user's presence in the chat is hidden" +#~ msgstr "" + +#~ msgid "*Optional*. Custom title for this user" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. :code:`True`, if the bot is" +#~ " allowed to edit administrator privileges" +#~ " of that user" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. :code:`True`, if the administrator" +#~ " can access the chat event log, " +#~ "chat statistics, message statistics in " +#~ "channels, see channel members, see " +#~ "anonymous administrators in supergroups and" +#~ " ignore slow mode. Implied by any " +#~ "other administrator privilege" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. :code:`True`, if the administrator" +#~ " can delete messages of other users" +#~ msgstr "" + +#~ msgid "*Optional*. :code:`True`, if the administrator can manage video chats" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. :code:`True`, if the administrator" +#~ " can restrict, ban or unban chat " +#~ "members" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. :code:`True`, if the administrator" +#~ " can add new administrators with a" +#~ " subset of their own privileges or" +#~ " demote administrators that they have " +#~ "promoted, directly or indirectly (promoted " +#~ "by administrators that were appointed by" +#~ " the user)" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. :code:`True`, if the user is" +#~ " allowed to change the chat title," +#~ " photo and other settings" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. :code:`True`, if the user is" +#~ " allowed to invite new users to " +#~ "the chat" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. :code:`True`, if the administrator" +#~ " can post in the channel; channels" +#~ " only" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. :code:`True`, if the administrator" +#~ " can edit messages of other users " +#~ "and can pin messages; channels only" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. :code:`True`, if the user is" +#~ " allowed to pin messages; groups and" +#~ " supergroups only" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. :code:`True`, if the user is" +#~ " allowed to create, rename, close, " +#~ "and reopen forum topics; supergroups " +#~ "only" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. :code:`True`, if the user is" +#~ " a member of the chat at the" +#~ " moment of the request" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. :code:`True`, if the user is" +#~ " allowed to send text messages, " +#~ "contacts, invoices, locations and venues" +#~ msgstr "" + +#~ msgid "*Optional*. :code:`True`, if the user is allowed to send audios" +#~ msgstr "" + +#~ msgid "*Optional*. :code:`True`, if the user is allowed to send documents" +#~ msgstr "" + +#~ msgid "*Optional*. :code:`True`, if the user is allowed to send photos" +#~ msgstr "" + +#~ msgid "*Optional*. :code:`True`, if the user is allowed to send videos" +#~ msgstr "" + +#~ msgid "*Optional*. :code:`True`, if the user is allowed to send video notes" +#~ msgstr "" + +#~ msgid "*Optional*. :code:`True`, if the user is allowed to send voice notes" +#~ msgstr "" + +#~ msgid "*Optional*. :code:`True`, if the user is allowed to send polls" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. :code:`True`, if the user is" +#~ " allowed to send animations, games, " +#~ "stickers and use inline bots" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. :code:`True`, if the user is" +#~ " allowed to add web page previews " +#~ "to their messages" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. Date when restrictions will " +#~ "be lifted for this user; unix " +#~ "time. If 0, then the user is " +#~ "restricted forever" +#~ msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_member_administrator.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_member_administrator.po index 8d56701a..77d9edce 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_member_administrator.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_member_administrator.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-02-12 00:22+0200\n" +"POT-Creation-Date: 2023-10-29 02:16+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.13.1\n" #: ../../api/types/chat_member_administrator.rst:3 msgid "ChatMemberAdministrator" @@ -60,8 +60,8 @@ msgstr "" #: aiogram.types.chat_member_administrator.ChatMemberAdministrator.can_manage_chat:1 #: of msgid "" -":code:`True`, if the administrator can access the chat event log, chat " -"statistics, message statistics in channels, see channel members, see " +":code:`True`, if the administrator can access the chat event log, boost " +"list in channels, see channel members, report spam messages, see " "anonymous administrators in supergroups and ignore slow mode. Implied by " "any other administrator privilege" msgstr "" @@ -81,7 +81,9 @@ msgstr "" #: ../../docstring #: aiogram.types.chat_member_administrator.ChatMemberAdministrator.can_restrict_members:1 #: of -msgid ":code:`True`, if the administrator can restrict, ban or unban chat members" +msgid "" +":code:`True`, if the administrator can restrict, ban or unban chat " +"members, or access supergroup statistics" msgstr "" #: ../../docstring @@ -112,8 +114,8 @@ msgstr "" #: aiogram.types.chat_member_administrator.ChatMemberAdministrator.can_post_messages:1 #: of msgid "" -"*Optional*. :code:`True`, if the administrator can post in the channel; " -"channels only" +"*Optional*. :code:`True`, if the administrator can post messages in the " +"channel, or access channel statistics; channels only" msgstr "" #: ../../docstring @@ -132,6 +134,30 @@ msgid "" "and supergroups only" msgstr "" +#: ../../docstring +#: aiogram.types.chat_member_administrator.ChatMemberAdministrator.can_post_stories:1 +#: of +msgid "" +"*Optional*. :code:`True`, if the administrator can post stories in the " +"channel; channels only" +msgstr "" + +#: ../../docstring +#: aiogram.types.chat_member_administrator.ChatMemberAdministrator.can_edit_stories:1 +#: of +msgid "" +"*Optional*. :code:`True`, if the administrator can edit stories posted by" +" other users; channels only" +msgstr "" + +#: ../../docstring +#: aiogram.types.chat_member_administrator.ChatMemberAdministrator.can_delete_stories:1 +#: of +msgid "" +"*Optional*. :code:`True`, if the administrator can delete stories posted " +"by other users; channels only" +msgstr "" + #: ../../docstring #: aiogram.types.chat_member_administrator.ChatMemberAdministrator.can_manage_topics:1 #: of @@ -156,3 +182,46 @@ msgstr "" #~ "the user)" #~ msgstr "" +#~ msgid "" +#~ ":code:`True`, if the administrator can " +#~ "access the chat event log, chat " +#~ "statistics, message statistics in channels," +#~ " see channel members, see anonymous " +#~ "administrators in supergroups and ignore " +#~ "slow mode. Implied by any other " +#~ "administrator privilege" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. :code:`True`, if the administrator" +#~ " can post in the channel; channels" +#~ " only" +#~ msgstr "" + +#~ msgid "" +#~ ":code:`True`, if the administrator can " +#~ "access the chat event log, chat " +#~ "statistics, boost list in channels, " +#~ "message statistics in channels, see " +#~ "channel members, see anonymous administrators" +#~ " in supergroups and ignore slow mode." +#~ " Implied by any other administrator " +#~ "privilege" +#~ msgstr "" + +#~ msgid "" +#~ ":code:`True`, if the administrator can " +#~ "restrict, ban or unban chat members" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. :code:`True`, if the administrator" +#~ " can post messages in the channel;" +#~ " channels only" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. :code:`True`, if the administrator" +#~ " can delete stories posted by other" +#~ " users" +#~ msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_member_banned.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_member_banned.po index 5b7267fb..4f3224f7 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_member_banned.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_member_banned.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" +"POT-Creation-Date: 2023-10-08 19:04+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/types/chat_member_banned.rst:3 msgid "ChatMemberBanned" @@ -44,6 +44,12 @@ msgstr "" #: ../../docstring #: aiogram.types.chat_member_banned.ChatMemberBanned.until_date:1 of msgid "" -"Date when restrictions will be lifted for this user; unix time. If 0, " +"Date when restrictions will be lifted for this user; Unix time. If 0, " "then the user is banned forever" msgstr "" + +#~ msgid "" +#~ "Date when restrictions will be lifted" +#~ " for this user; unix time. If " +#~ "0, then the user is banned forever" +#~ msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_member_restricted.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_member_restricted.po index 052a4b20..cdfa2d34 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_member_restricted.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_member_restricted.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-02-12 00:22+0200\n" +"POT-Creation-Date: 2023-10-08 19:04+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/types/chat_member_restricted.rst:3 msgid "ChatMemberRestricted" @@ -144,7 +144,7 @@ msgstr "" #: ../../docstring #: aiogram.types.chat_member_restricted.ChatMemberRestricted.until_date:1 of msgid "" -"Date when restrictions will be lifted for this user; unix time. If 0, " +"Date when restrictions will be lifted for this user; Unix time. If 0, " "then the user is restricted forever" msgstr "" @@ -160,3 +160,9 @@ msgstr "" #~ "videos, video notes and voice notes" #~ msgstr "" +#~ msgid "" +#~ "Date when restrictions will be lifted" +#~ " for this user; unix time. If " +#~ "0, then the user is restricted " +#~ "forever" +#~ msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_member_updated.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_member_updated.po index b4b6ba61..54a5007a 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_member_updated.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/chat_member_updated.po @@ -69,3 +69,1164 @@ msgid "" "link" msgstr "" +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_message.SendMessage` " +"will automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer:4 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation:4 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio:4 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_contact:4 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_dice:4 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_document:4 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_game:4 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:4 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_location:4 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_media_group:4 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_photo:4 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:4 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_sticker:4 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue:4 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video:4 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video_note:4 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_voice:4 of +msgid ":code:`chat_id`" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer:6 of +msgid "" +"Use this method to send text messages. On success, the sent " +":class:`aiogram.types.message.Message` is returned." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer:8 of +msgid "Source: https://core.telegram.org/bots/api#sendmessage" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_contact +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_dice +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_document +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_game +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_location +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_media_group +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_photo +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_sticker +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video_note +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_voice of +msgid "Parameters" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer:10 of +msgid "Text of the message to be sent, 1-4096 characters after entities parsing" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer:11 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation:11 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio:12 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_contact:12 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_dice:10 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_document:11 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_game:11 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:16 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_location:12 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_media_group:11 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_photo:11 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:12 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_sticker:11 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue:14 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video:11 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video_note:11 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_voice:11 of +msgid "" +"Unique identifier for the target message thread (topic) of the forum; for" +" forum supergroups only" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer:12 of +msgid "" +"Mode for parsing entities in the message text. See `formatting options " +"`_ for more " +"details." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer:13 of +msgid "" +"A JSON-serialized list of special entities that appear in message text, " +"which can be specified instead of *parse_mode*" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer:14 of +msgid "Disables link previews for links in this message" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer:15 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation:20 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio:20 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_contact:15 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_dice:12 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_document:17 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_game:12 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:32 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_location:17 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_photo:16 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:23 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_sticker:13 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue:19 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video:21 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video_note:15 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_voice:16 of +msgid "" +"Sends the message `silently `_. Users will receive a notification with no sound." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer:16 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation:21 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio:21 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_contact:16 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_document:18 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_game:13 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:33 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_location:18 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_photo:17 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:24 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_sticker:14 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue:20 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video:22 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video_note:16 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_voice:17 of +msgid "Protects the contents of the sent message from forwarding and saving" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer:17 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation:22 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio:22 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_contact:17 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_dice:14 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_document:19 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_game:14 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:34 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_location:19 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_photo:18 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:25 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_sticker:15 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue:21 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video:23 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video_note:17 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_voice:18 of +msgid "If the message is a reply, ID of the original message" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer:18 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation:23 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio:23 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_contact:18 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_dice:15 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_document:20 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_game:15 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:35 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_location:20 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_media_group:15 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_photo:19 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:26 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_sticker:16 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue:22 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video:24 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video_note:18 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_voice:19 of +msgid "" +"Pass :code:`True` if the message should be sent even if the specified " +"replied-to message is not found" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer:19 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation:24 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio:24 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_contact:19 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_dice:16 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_document:21 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_location:21 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_photo:20 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:27 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_sticker:17 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue:23 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video:25 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video_note:19 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_voice:20 of +msgid "" +"Additional interface options. A JSON-serialized object for an `inline " +"keyboard `_, " +"`custom reply keyboard " +"`_, instructions to " +"remove reply keyboard or to force a reply from the user." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_contact +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_dice +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_document +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_game +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_location +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_media_group +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_photo +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_sticker +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video_note +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_voice of +msgid "Returns" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer:20 of +msgid "instance of method :class:`aiogram.methods.send_message.SendMessage`" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_animation.SendAnimation`" +" will automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation:6 of +msgid "" +"Use this method to send animation files (GIF or H.264/MPEG-4 AVC video " +"without sound). On success, the sent " +":class:`aiogram.types.message.Message` is returned. Bots can currently " +"send animation files of up to 50 MB in size, this limit may be changed in" +" the future." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation:8 of +msgid "Source: https://core.telegram.org/bots/api#sendanimation" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation:10 of +msgid "" +"Animation to send. Pass a file_id as String to send an animation that " +"exists on the Telegram servers (recommended), pass an HTTP URL as a " +"String for Telegram to get an animation from the Internet, or upload a " +"new animation using multipart/form-data. :ref:`More information on " +"Sending Files » `" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation:12 of +msgid "Duration of sent animation in seconds" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation:13 of +msgid "Animation width" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation:14 of +msgid "Animation height" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation:15 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio:19 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_document:12 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video:15 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video_note:14 of +msgid "" +"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 » `" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation:16 of +msgid "" +"Animation caption (may also be used when resending animation by " +"*file_id*), 0-1024 characters after entities parsing" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation:17 of +msgid "" +"Mode for parsing entities in the animation caption. See `formatting " +"options `_ for " +"more details." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation:18 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio:15 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_document:15 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_photo:14 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video:18 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_voice:14 of +msgid "" +"A JSON-serialized list of special entities that appear in the caption, " +"which can be specified instead of *parse_mode*" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation:19 of +msgid "" +"Pass :code:`True` if the animation needs to be covered with a spoiler " +"animation" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_animation:25 of +msgid "instance of method :class:`aiogram.methods.send_animation.SendAnimation`" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_audio.SendAudio` will " +"automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio:6 of +msgid "" +"Use this method to send audio files, if you want Telegram clients to " +"display them in the music player. Your audio must be in the .MP3 or .M4A " +"format. On success, the sent :class:`aiogram.types.message.Message` is " +"returned. Bots can currently send audio files of up to 50 MB in size, " +"this limit may be changed in the future. For sending voice messages, use " +"the :class:`aiogram.methods.send_voice.SendVoice` method instead." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio:9 of +msgid "Source: https://core.telegram.org/bots/api#sendaudio" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio:11 of +msgid "" +"Audio file to send. Pass a file_id as String to send an audio file that " +"exists on the Telegram servers (recommended), pass an HTTP URL as a " +"String for Telegram to get an audio file from the Internet, or upload a " +"new one using multipart/form-data. :ref:`More information on Sending " +"Files » `" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio:13 of +msgid "Audio caption, 0-1024 characters after entities parsing" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio:14 of +msgid "" +"Mode for parsing entities in the audio caption. See `formatting options " +"`_ for more " +"details." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio:16 of +msgid "Duration of the audio in seconds" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio:17 of +msgid "Performer" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio:18 of +msgid "Track name" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_audio:25 of +msgid "instance of method :class:`aiogram.methods.send_audio.SendAudio`" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_contact:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_contact.SendContact` " +"will automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_contact:6 of +msgid "" +"Use this method to send phone contacts. On success, the sent " +":class:`aiogram.types.message.Message` is returned." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_contact:8 of +msgid "Source: https://core.telegram.org/bots/api#sendcontact" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_contact:10 of +msgid "Contact's phone number" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_contact:11 of +msgid "Contact's first name" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_contact:13 of +msgid "Contact's last name" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_contact:14 of +msgid "" +"Additional data about the contact in the form of a `vCard " +"`_, 0-2048 bytes" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_contact:20 of +msgid "instance of method :class:`aiogram.methods.send_contact.SendContact`" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_document:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_document.SendDocument` " +"will automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_document:6 of +msgid "" +"Use this method to send general files. On success, the sent " +":class:`aiogram.types.message.Message` is returned. Bots can currently " +"send files of any type of up to 50 MB in size, this limit may be changed " +"in the future." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_document:8 of +msgid "Source: https://core.telegram.org/bots/api#senddocument" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_document:10 of +msgid "" +"File to send. Pass a file_id as String to send a file that exists on the " +"Telegram servers (recommended), 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 » `" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_document:13 of +msgid "" +"Document caption (may also be used when resending documents by " +"*file_id*), 0-1024 characters after entities parsing" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_document:14 of +msgid "" +"Mode for parsing entities in the document caption. See `formatting " +"options `_ for " +"more details." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_document:16 of +msgid "" +"Disables automatic server-side content type detection for files uploaded " +"using multipart/form-data" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_document:22 of +msgid "instance of method :class:`aiogram.methods.send_document.SendDocument`" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_game:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_game.SendGame` will " +"automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_game:6 of +msgid "" +"Use this method to send a game. On success, the sent " +":class:`aiogram.types.message.Message` is returned." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_game:8 of +msgid "Source: https://core.telegram.org/bots/api#sendgame" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_game:10 of +msgid "" +"Short name of the game, serves as the unique identifier for the game. Set" +" up your games via `@BotFather `_." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_game:16 of +msgid "" +"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." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_game:17 of +msgid "instance of method :class:`aiogram.methods.send_game.SendGame`" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_invoice.SendInvoice` " +"will automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:6 of +msgid "" +"Use this method to send invoices. On success, the sent " +":class:`aiogram.types.message.Message` is returned." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:8 of +msgid "Source: https://core.telegram.org/bots/api#sendinvoice" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:10 of +msgid "Product name, 1-32 characters" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:11 of +msgid "Product description, 1-255 characters" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:12 of +msgid "" +"Bot-defined invoice payload, 1-128 bytes. This will not be displayed to " +"the user, use for your internal processes." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:13 of +msgid "" +"Payment provider token, obtained via `@BotFather " +"`_" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:14 of +msgid "" +"Three-letter ISO 4217 currency code, see `more on currencies " +"`_" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:15 of +msgid "" +"Price breakdown, a JSON-serialized list of components (e.g. product " +"price, tax, discount, delivery cost, delivery tax, bonus, etc.)" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:17 of +msgid "" +"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" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:18 of +msgid "" +"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*." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:19 of +msgid "" +"Unique deep-linking parameter. If left empty, **forwarded copies** of the" +" sent message will have a *Pay* button, allowing multiple users to pay " +"directly from the forwarded message, using the same invoice. If non-" +"empty, forwarded copies of the sent message will have a *URL* button with" +" a deep link to the bot (instead of a *Pay* button), with the value used " +"as the start parameter" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:20 of +msgid "" +"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." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:21 of +msgid "" +"URL of the product photo for the invoice. Can be a photo of the goods or " +"a marketing image for a service. People like it better when they see what" +" they are paying for." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:22 of +msgid "Photo size in bytes" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:23 of +msgid "Photo width" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:24 of +msgid "Photo height" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:25 of +msgid "" +"Pass :code:`True` if you require the user's full name to complete the " +"order" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:26 of +msgid "" +"Pass :code:`True` if you require the user's phone number to complete the " +"order" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:27 of +msgid "" +"Pass :code:`True` if you require the user's email address to complete the" +" order" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:28 of +msgid "" +"Pass :code:`True` if you require the user's shipping address to complete " +"the order" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:29 of +msgid "Pass :code:`True` if the user's phone number should be sent to provider" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:30 of +msgid "Pass :code:`True` if the user's email address should be sent to provider" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:31 of +msgid "Pass :code:`True` if the final price depends on the shipping method" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:36 of +msgid "" +"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." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_invoice:37 of +msgid "instance of method :class:`aiogram.methods.send_invoice.SendInvoice`" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_location:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_location.SendLocation` " +"will automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_location:6 of +msgid "" +"Use this method to send point on the map. On success, the sent " +":class:`aiogram.types.message.Message` is returned." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_location:8 of +msgid "Source: https://core.telegram.org/bots/api#sendlocation" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_location:10 of +msgid "Latitude of the location" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_location:11 of +msgid "Longitude of the location" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_location:13 of +msgid "The radius of uncertainty for the location, measured in meters; 0-1500" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_location:14 of +msgid "" +"Period in seconds for which the location will be updated (see `Live " +"Locations `_, should be between" +" 60 and 86400." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_location:15 of +msgid "" +"For live locations, a direction in which the user is moving, in degrees. " +"Must be between 1 and 360 if specified." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_location:16 of +msgid "" +"For live locations, a maximum distance for proximity alerts about " +"approaching another chat member, in meters. Must be between 1 and 100000 " +"if specified." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_location:22 of +msgid "instance of method :class:`aiogram.methods.send_location.SendLocation`" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_media_group:1 of +msgid "" +"Shortcut for method " +":class:`aiogram.methods.send_media_group.SendMediaGroup` will " +"automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_media_group:6 of +msgid "" +"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." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_media_group:8 of +msgid "Source: https://core.telegram.org/bots/api#sendmediagroup" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_media_group:10 of +msgid "" +"A JSON-serialized array describing messages to be sent, must include 2-10" +" items" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_media_group:12 of +msgid "" +"Sends messages `silently `_. Users will receive a notification with no sound." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_media_group:13 of +msgid "Protects the contents of the sent messages from forwarding and saving" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_media_group:14 of +msgid "If the messages are a reply, ID of the original message" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_media_group:16 of +msgid "" +"instance of method " +":class:`aiogram.methods.send_media_group.SendMediaGroup`" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_photo:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_photo.SendPhoto` will " +"automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_photo:6 of +msgid "" +"Use this method to send photos. On success, the sent " +":class:`aiogram.types.message.Message` is returned." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_photo:8 of +msgid "Source: https://core.telegram.org/bots/api#sendphoto" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_photo:10 of +msgid "" +"Photo to send. Pass a file_id as String to send a photo that exists on " +"the Telegram servers (recommended), pass an HTTP URL as a String for " +"Telegram to get a photo from the Internet, or upload a new photo using " +"multipart/form-data. The photo must be at most 10 MB in size. The photo's" +" width and height must not exceed 10000 in total. Width and height ratio " +"must be at most 20. :ref:`More information on Sending Files » `" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_photo:12 of +msgid "" +"Photo caption (may also be used when resending photos by *file_id*), " +"0-1024 characters after entities parsing" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_photo:13 of +msgid "" +"Mode for parsing entities in the photo caption. See `formatting options " +"`_ for more " +"details." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_photo:15 of +msgid "" +"Pass :code:`True` if the photo needs to be covered with a spoiler " +"animation" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_photo:21 of +msgid "instance of method :class:`aiogram.methods.send_photo.SendPhoto`" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_poll.SendPoll` will " +"automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:6 of +msgid "" +"Use this method to send a native poll. On success, the sent " +":class:`aiogram.types.message.Message` is returned." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:8 of +msgid "Source: https://core.telegram.org/bots/api#sendpoll" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:10 of +msgid "Poll question, 1-300 characters" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:11 of +msgid "" +"A JSON-serialized list of answer options, 2-10 strings 1-100 characters " +"each" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:13 of +msgid ":code:`True`, if the poll needs to be anonymous, defaults to :code:`True`" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:14 of +msgid "Poll type, 'quiz' or 'regular', defaults to 'regular'" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:15 of +msgid "" +":code:`True`, if the poll allows multiple answers, ignored for polls in " +"quiz mode, defaults to :code:`False`" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:16 of +msgid "" +"0-based identifier of the correct answer option, required for polls in " +"quiz mode" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:17 of +msgid "" +"Text that is shown when a user chooses an incorrect answer or taps on the" +" lamp icon in a quiz-style poll, 0-200 characters with at most 2 line " +"feeds after entities parsing" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:18 of +msgid "" +"Mode for parsing entities in the explanation. See `formatting options " +"`_ for more " +"details." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:19 of +msgid "" +"A JSON-serialized list of special entities that appear in the poll " +"explanation, which can be specified instead of *parse_mode*" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:20 of +msgid "" +"Amount of time in seconds the poll will be active after creation, 5-600. " +"Can't be used together with *close_date*." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:21 of +msgid "" +"Point in time (Unix timestamp) when the poll will be automatically " +"closed. Must be at least 5 and no more than 600 seconds in the future. " +"Can't be used together with *open_period*." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:22 of +msgid "" +"Pass :code:`True` if the poll needs to be immediately closed. This can be" +" useful for poll preview." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_poll:28 of +msgid "instance of method :class:`aiogram.methods.send_poll.SendPoll`" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_dice:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_dice.SendDice` will " +"automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_dice:6 of +msgid "" +"Use this method to send an animated emoji that will display a random " +"value. On success, the sent :class:`aiogram.types.message.Message` is " +"returned." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_dice:8 of +msgid "Source: https://core.telegram.org/bots/api#senddice" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_dice:11 of +msgid "" +"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 '🎲'" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_dice:13 of +msgid "Protects the contents of the sent message from forwarding" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_dice:17 of +msgid "instance of method :class:`aiogram.methods.send_dice.SendDice`" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_sticker:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_sticker.SendSticker` " +"will automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_sticker:6 of +msgid "" +"Use this method to send static .WEBP, `animated " +"`_ .TGS, or `video " +"`_ .WEBM " +"stickers. On success, the sent :class:`aiogram.types.message.Message` is " +"returned." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_sticker:8 of +msgid "Source: https://core.telegram.org/bots/api#sendsticker" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_sticker:10 of +msgid "" +"Sticker to send. Pass a file_id as String to send a file that exists on " +"the Telegram servers (recommended), pass an HTTP URL as a String for " +"Telegram to get a .WEBP sticker from the Internet, or upload a new .WEBP " +"or .TGS sticker using multipart/form-data. :ref:`More information on " +"Sending Files » `. Video stickers can only be sent by a " +"file_id. Animated stickers can't be sent via an HTTP URL." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_sticker:12 of +msgid "Emoji associated with the sticker; only for just uploaded stickers" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_sticker:18 of +msgid "instance of method :class:`aiogram.methods.send_sticker.SendSticker`" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_venue.SendVenue` will " +"automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue:6 of +msgid "" +"Use this method to send information about a venue. On success, the sent " +":class:`aiogram.types.message.Message` is returned." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue:8 of +msgid "Source: https://core.telegram.org/bots/api#sendvenue" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue:10 of +msgid "Latitude of the venue" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue:11 of +msgid "Longitude of the venue" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue:12 of +msgid "Name of the venue" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue:13 of +msgid "Address of the venue" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue:15 of +msgid "Foursquare identifier of the venue" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue:16 of +msgid "" +"Foursquare type of the venue, if known. (For example, " +"'arts_entertainment/default', 'arts_entertainment/aquarium' or " +"'food/icecream'.)" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue:17 of +msgid "Google Places identifier of the venue" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue:18 of +msgid "" +"Google Places type of the venue. (See `supported types " +"`_.)" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_venue:24 of +msgid "instance of method :class:`aiogram.methods.send_venue.SendVenue`" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_video.SendVideo` will " +"automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video:6 of +msgid "" +"Use this method to send video files, Telegram clients support MPEG4 " +"videos (other formats may be sent as " +":class:`aiogram.types.document.Document`). On success, the sent " +":class:`aiogram.types.message.Message` is returned. Bots can currently " +"send video files of up to 50 MB in size, this limit may be changed in the" +" future." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video:8 of +msgid "Source: https://core.telegram.org/bots/api#sendvideo" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video:10 of +msgid "" +"Video to send. Pass a file_id as String to send a video that exists on " +"the Telegram servers (recommended), pass an HTTP URL as a String for " +"Telegram to get a video from the Internet, or upload a new video using " +"multipart/form-data. :ref:`More information on Sending Files » `" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video:12 +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video_note:12 of +msgid "Duration of sent video in seconds" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video:13 of +msgid "Video width" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video:14 of +msgid "Video height" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video:16 of +msgid "" +"Video caption (may also be used when resending videos by *file_id*), " +"0-1024 characters after entities parsing" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video:17 of +msgid "" +"Mode for parsing entities in the video caption. See `formatting options " +"`_ for more " +"details." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video:19 of +msgid "" +"Pass :code:`True` if the video needs to be covered with a spoiler " +"animation" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video:20 of +msgid "Pass :code:`True` if the uploaded video is suitable for streaming" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video:26 of +msgid "instance of method :class:`aiogram.methods.send_video.SendVideo`" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video_note:1 of +msgid "" +"Shortcut for method " +":class:`aiogram.methods.send_video_note.SendVideoNote` will automatically" +" fill method attributes:" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video_note:6 of +msgid "" +"As of `v.4.0 `_, " +"Telegram clients support rounded square MPEG4 videos of up to 1 minute " +"long. Use this method to send video messages. On success, the sent " +":class:`aiogram.types.message.Message` is returned." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video_note:8 of +msgid "Source: https://core.telegram.org/bots/api#sendvideonote" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video_note:10 of +msgid "" +"Video note to send. Pass a file_id as String to send a video note that " +"exists on the Telegram servers (recommended) or upload a new video using " +"multipart/form-data. :ref:`More information on Sending Files » `. Sending video notes by a URL is currently unsupported" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video_note:13 of +msgid "Video width and height, i.e. diameter of the video message" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_video_note:20 of +msgid "instance of method :class:`aiogram.methods.send_video_note.SendVideoNote`" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_voice:1 of +msgid "" +"Shortcut for method :class:`aiogram.methods.send_voice.SendVoice` will " +"automatically fill method attributes:" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_voice:6 of +msgid "" +"Use this method to send audio files, if you want Telegram clients to " +"display the file as a playable voice message. For this to work, your " +"audio must be in an .OGG file encoded with OPUS (other formats may be " +"sent as :class:`aiogram.types.audio.Audio` or " +":class:`aiogram.types.document.Document`). On success, the sent " +":class:`aiogram.types.message.Message` is returned. Bots can currently " +"send voice messages of up to 50 MB in size, this limit may be changed in " +"the future." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_voice:8 of +msgid "Source: https://core.telegram.org/bots/api#sendvoice" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_voice:10 of +msgid "" +"Audio file to send. Pass a file_id as String to send a file that exists " +"on the Telegram servers (recommended), 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 » `" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_voice:12 of +msgid "Voice message caption, 0-1024 characters after entities parsing" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_voice:13 of +msgid "" +"Mode for parsing entities in the voice message caption. See `formatting " +"options `_ for " +"more details." +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_voice:15 of +msgid "Duration of the voice message in seconds" +msgstr "" + +#: aiogram.types.chat_member_updated.ChatMemberUpdated.answer_voice:21 of +msgid "instance of method :class:`aiogram.methods.send_voice.SendVoice`" +msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/index.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/index.po index 95b65360..5fccb817 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/index.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-01 20:49+0300\n" +"POT-Creation-Date: 2023-07-02 15:10+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/inline_query.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/inline_query.po index 0ac2d76e..d63a8ebc 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/inline_query.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/inline_query.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-01 20:49+0300\n" +"POT-Creation-Date: 2023-07-02 15:10+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/inline_query_results_button.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/inline_query_results_button.po index 8f115339..bc845fc6 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/inline_query_results_button.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/inline_query_results_button.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-01 20:49+0300\n" +"POT-Creation-Date: 2023-10-08 19:04+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -43,8 +43,9 @@ msgid "" "*Optional*. Description of the `Web App " "`_ that will be launched when the" " user presses the button. The Web App will be able to switch back to the " -"inline mode using the method *web_app_switch_inline_query* inside the Web" -" App." +"inline mode using the method `switchInlineQuery " +"`_ inside " +"the Web App." msgstr "" #: ../../docstring diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/input_sticker.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/input_sticker.po index 7bdf4729..fb2433c4 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/input_sticker.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/input_sticker.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-01 20:49+0300\n" +"POT-Creation-Date: 2023-07-02 15:10+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -70,4 +70,3 @@ msgstr "" #~ "information on Sending Files » " #~ "`" #~ msgstr "" - diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/keyboard_button_request_chat.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/keyboard_button_request_chat.po index 0e3ffded..b0f1265b 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/keyboard_button_request_chat.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/keyboard_button_request_chat.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-01 20:49+0300\n" +"POT-Creation-Date: 2023-07-02 15:10+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/keyboard_button_request_user.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/keyboard_button_request_user.po index 78e9864a..a986322d 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/keyboard_button_request_user.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/keyboard_button_request_user.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-01 20:49+0300\n" +"POT-Creation-Date: 2023-07-02 15:10+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/message.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/message.po index b3f65085..a16856de 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/message.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/message.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" +"POT-Creation-Date: 2023-10-08 19:04+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/types/message.rst:3 msgid "Message" @@ -173,6 +173,10 @@ msgstr "" msgid "*Optional*. Message is a sticker, information about the sticker" msgstr "" +#: ../../docstring aiogram.types.message.Message.story:1 of +msgid "*Optional*. Message is a forwarded story" +msgstr "" + #: ../../docstring aiogram.types.message.Message.video:1 of msgid "*Optional*. Message is a video, information about the video" msgstr "" @@ -345,8 +349,11 @@ msgstr "" #: ../../docstring aiogram.types.message.Message.write_access_allowed:1 of msgid "" -"*Optional*. Service message: the user allowed the bot added to the " -"attachment menu to write messages" +"*Optional*. Service message: the user allowed the bot to write messages " +"after adding it to the attachment or side menu, launching a Web App from " +"a link, or accepting an explicit request from a Web App sent by the " +"method `requestWriteAccess `_" msgstr "" #: ../../docstring aiogram.types.message.Message.passport_data:1 of @@ -437,6 +444,7 @@ msgstr "" #: aiogram.types.message.Message.answer_video_note:4 #: aiogram.types.message.Message.answer_voice:4 #: aiogram.types.message.Message.delete:4 +#: aiogram.types.message.Message.delete_reply_markup:4 #: aiogram.types.message.Message.edit_caption:4 #: aiogram.types.message.Message.edit_live_location:4 #: aiogram.types.message.Message.edit_media:4 @@ -554,6 +562,7 @@ msgstr "" #: aiogram.types.message.Message.answer_video_note #: aiogram.types.message.Message.answer_voice #: aiogram.types.message.Message.copy_to +#: aiogram.types.message.Message.delete_reply_markup #: aiogram.types.message.Message.edit_caption #: aiogram.types.message.Message.edit_live_location #: aiogram.types.message.Message.edit_media @@ -836,6 +845,7 @@ msgstr "" #: aiogram.types.message.Message.answer_video_note #: aiogram.types.message.Message.answer_voice #: aiogram.types.message.Message.copy_to aiogram.types.message.Message.delete +#: aiogram.types.message.Message.delete_reply_markup #: aiogram.types.message.Message.edit_caption #: aiogram.types.message.Message.edit_live_location #: aiogram.types.message.Message.edit_media @@ -1941,7 +1951,7 @@ msgid "instance of method :class:`aiogram.methods.send_voice.SendVoice`" msgstr "" #: aiogram.types.message.Message.send_copy:1 of -msgid "Send copy of message." +msgid "Send copy of a message." msgstr "" #: aiogram.types.message.Message.send_copy:3 of @@ -1952,8 +1962,8 @@ msgstr "" #: aiogram.types.message.Message.send_copy:8 of msgid "" -"This method don't use the API method named `copyMessage` and historically" -" implemented before the similar method is added to API" +"This method doesn't use the API method named `copyMessage` and " +"historically implemented before the similar method is added to API" msgstr "" #: aiogram.types.message.Message.copy_to:1 of @@ -1969,6 +1979,7 @@ msgstr "" #: aiogram.types.message.Message.copy_to:5 #: aiogram.types.message.Message.delete:5 +#: aiogram.types.message.Message.delete_reply_markup:5 #: aiogram.types.message.Message.edit_caption:5 #: aiogram.types.message.Message.edit_live_location:5 #: aiogram.types.message.Message.edit_media:5 @@ -2057,6 +2068,7 @@ msgstr "" msgid "New text of the message, 1-4096 characters after entities parsing" msgstr "" +#: aiogram.types.message.Message.delete_reply_markup:12 #: aiogram.types.message.Message.edit_caption:11 #: aiogram.types.message.Message.edit_live_location:13 #: aiogram.types.message.Message.edit_media:12 @@ -2149,6 +2161,7 @@ msgid "" ":class:`aiogram.methods.edit_message_media.EditMessageMedia`" msgstr "" +#: aiogram.types.message.Message.delete_reply_markup:1 #: aiogram.types.message.Message.edit_reply_markup:1 of msgid "" "Shortcut for method " @@ -2156,6 +2169,7 @@ msgid "" " will automatically fill method attributes:" msgstr "" +#: aiogram.types.message.Message.delete_reply_markup:8 #: aiogram.types.message.Message.edit_reply_markup:7 of msgid "" "Use this method to edit only the reply markup of messages. On success, if" @@ -2164,16 +2178,22 @@ msgid "" ":code:`True` is returned." msgstr "" +#: aiogram.types.message.Message.delete_reply_markup:10 #: aiogram.types.message.Message.edit_reply_markup:9 of msgid "Source: https://core.telegram.org/bots/api#editmessagereplymarkup" msgstr "" +#: aiogram.types.message.Message.delete_reply_markup:13 #: aiogram.types.message.Message.edit_reply_markup:13 of msgid "" "instance of method " ":class:`aiogram.methods.edit_message_reply_markup.EditMessageReplyMarkup`" msgstr "" +#: aiogram.types.message.Message.delete_reply_markup:6 of +msgid ":code:`reply_markup`" +msgstr "" + #: aiogram.types.message.Message.edit_live_location:1 of msgid "" "Shortcut for method " @@ -2562,3 +2582,19 @@ msgstr "" #~ "/form-data. :ref:`More information on " #~ "Sending Files » `" #~ msgstr "" + +#~ msgid "Send copy of message." +#~ msgstr "" + +#~ msgid "" +#~ "This method don't use the API " +#~ "method named `copyMessage` and historically" +#~ " implemented before the similar method " +#~ "is added to API" +#~ msgstr "" + +#~ msgid "" +#~ "*Optional*. Service message: the user " +#~ "allowed the bot added to the " +#~ "attachment menu to write messages" +#~ msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/poll_answer.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/poll_answer.po index 627b292c..63fb9b5d 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/poll_answer.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/poll_answer.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" +"POT-Creation-Date: 2023-08-26 23:17+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/types/poll_answer.rst:3 msgid "PollAnswer" @@ -33,12 +33,29 @@ msgstr "" msgid "Unique poll identifier" msgstr "" -#: ../../docstring aiogram.types.poll_answer.PollAnswer.user:1 of -msgid "The user, who changed the answer to the poll" -msgstr "" - #: ../../docstring aiogram.types.poll_answer.PollAnswer.option_ids:1 of msgid "" -"0-based identifiers of answer options, chosen by the user. May be empty " -"if the user retracted their vote." +"0-based identifiers of chosen answer options. May be empty if the vote " +"was retracted." msgstr "" + +#: ../../docstring aiogram.types.poll_answer.PollAnswer.voter_chat:1 of +msgid "" +"*Optional*. The chat that changed the answer to the poll, if the voter is" +" anonymous" +msgstr "" + +#: ../../docstring aiogram.types.poll_answer.PollAnswer.user:1 of +msgid "" +"*Optional*. The user that changed the answer to the poll, if the voter " +"isn't anonymous" +msgstr "" + +#~ msgid "The user, who changed the answer to the poll" +#~ msgstr "" + +#~ msgid "" +#~ "0-based identifiers of answer options, " +#~ "chosen by the user. May be empty" +#~ " if the user retracted their vote." +#~ msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/pre_checkout_query.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/pre_checkout_query.po index 053b5081..59009813 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/pre_checkout_query.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/pre_checkout_query.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" +"POT-Creation-Date: 2023-08-06 16:52+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/types/pre_checkout_query.rst:3 msgid "PreCheckoutQuery" @@ -71,10 +71,58 @@ msgstr "" msgid "*Optional*. Order information provided by the user" msgstr "" +#: aiogram.types.pre_checkout_query.PreCheckoutQuery.answer:1 of +msgid "" +"Shortcut for method " +":class:`aiogram.methods.answer_pre_checkout_query.AnswerPreCheckoutQuery`" +" will automatically fill method attributes:" +msgstr "" + +#: aiogram.types.pre_checkout_query.PreCheckoutQuery.answer:4 of +msgid ":code:`pre_checkout_query_id`" +msgstr "" + +#: aiogram.types.pre_checkout_query.PreCheckoutQuery.answer:6 of +msgid "" +"Once the user has confirmed their payment and shipping details, the Bot " +"API sends the final confirmation in the form of an " +":class:`aiogram.types.update.Update` with the field *pre_checkout_query*." +" Use this method to respond to such pre-checkout queries. On success, " +":code:`True` is returned. **Note:** The Bot API must receive an answer " +"within 10 seconds after the pre-checkout query was sent." +msgstr "" + +#: aiogram.types.pre_checkout_query.PreCheckoutQuery.answer:8 of +msgid "Source: https://core.telegram.org/bots/api#answerprecheckoutquery" +msgstr "" + #: aiogram.types.pre_checkout_query.PreCheckoutQuery.answer of msgid "Parameters" msgstr "" +#: aiogram.types.pre_checkout_query.PreCheckoutQuery.answer:10 of +msgid "" +"Specify :code:`True` if everything is alright (goods are available, etc.)" +" and the bot is ready to proceed with the order. Use :code:`False` if " +"there are any problems." +msgstr "" + +#: aiogram.types.pre_checkout_query.PreCheckoutQuery.answer:11 of +msgid "" +"Required if *ok* is :code:`False`. Error message in human readable form " +"that explains the reason for failure to proceed with the checkout (e.g. " +"\"Sorry, somebody just bought the last of our amazing black T-shirts " +"while you were busy filling out your payment details. Please choose a " +"different color or garment!\"). Telegram will display this message to the" +" user." +msgstr "" + #: aiogram.types.pre_checkout_query.PreCheckoutQuery.answer of msgid "Returns" msgstr "" + +#: aiogram.types.pre_checkout_query.PreCheckoutQuery.answer:12 of +msgid "" +"instance of method " +":class:`aiogram.methods.answer_pre_checkout_query.AnswerPreCheckoutQuery`" +msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/shipping_query.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/shipping_query.po index 71f13a21..b17b8c63 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/shipping_query.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/shipping_query.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" +"POT-Creation-Date: 2023-08-06 16:52+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/types/shipping_query.rst:3 msgid "ShippingQuery" @@ -47,10 +47,61 @@ msgstr "" msgid "User specified shipping address" msgstr "" +#: aiogram.types.shipping_query.ShippingQuery.answer:1 of +msgid "" +"Shortcut for method " +":class:`aiogram.methods.answer_shipping_query.AnswerShippingQuery` will " +"automatically fill method attributes:" +msgstr "" + +#: aiogram.types.shipping_query.ShippingQuery.answer:4 of +msgid ":code:`shipping_query_id`" +msgstr "" + +#: aiogram.types.shipping_query.ShippingQuery.answer:6 of +msgid "" +"If you sent an invoice requesting a shipping address and the parameter " +"*is_flexible* was specified, the Bot API will send an " +":class:`aiogram.types.update.Update` with a *shipping_query* field to the" +" bot. Use this method to reply to shipping queries. On success, " +":code:`True` is returned." +msgstr "" + +#: aiogram.types.shipping_query.ShippingQuery.answer:8 of +msgid "Source: https://core.telegram.org/bots/api#answershippingquery" +msgstr "" + #: aiogram.types.shipping_query.ShippingQuery.answer of msgid "Parameters" msgstr "" +#: aiogram.types.shipping_query.ShippingQuery.answer:10 of +msgid "" +"Pass :code:`True` if delivery to the specified address is possible and " +":code:`False` if there are any problems (for example, if delivery to the " +"specified address is not possible)" +msgstr "" + +#: aiogram.types.shipping_query.ShippingQuery.answer:11 of +msgid "" +"Required if *ok* is :code:`True`. A JSON-serialized array of available " +"shipping options." +msgstr "" + +#: aiogram.types.shipping_query.ShippingQuery.answer:12 of +msgid "" +"Required if *ok* is :code:`False`. Error message in human readable form " +"that explains why it is impossible to complete the order (e.g. \"Sorry, " +"delivery to your desired address is unavailable'). Telegram will display " +"this message to the user." +msgstr "" + #: aiogram.types.shipping_query.ShippingQuery.answer of msgid "Returns" msgstr "" + +#: aiogram.types.shipping_query.ShippingQuery.answer:13 of +msgid "" +"instance of method " +":class:`aiogram.methods.answer_shipping_query.AnswerShippingQuery`" +msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/api/enums/chat_type.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/story.po similarity index 51% rename from docs/locale/en/LC_MESSAGES/api/enums/chat_type.po rename to docs/locale/uk_UA/LC_MESSAGES/api/types/story.po index daa15092..92bf0e3a 100644 --- a/docs/locale/en/LC_MESSAGES/api/enums/chat_type.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/story.po @@ -1,30 +1,32 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team +# Copyright (C) 2023, aiogram Team # This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. +# FIRST AUTHOR , 2023. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-23 00:47+0200\n" +"POT-Creation-Date: 2023-08-26 23:17+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" -#: ../../api/enums/chat_type.rst:3 -msgid "ChatType" +#: ../../api/types/story.rst:3 +msgid "Story" msgstr "" -#: aiogram.enums.chat_type.ChatType:1 of -msgid "This object represents a chat type" +#: aiogram.types.story.Story:1 of +msgid "" +"This object represents a message about a forwarded story in the chat. " +"Currently holds no information." msgstr "" -#: aiogram.enums.chat_type.ChatType:3 of -msgid "Source: https://core.telegram.org/bots/api#chat" +#: aiogram.types.story.Story:3 of +msgid "Source: https://core.telegram.org/bots/api#story" msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/switch_inline_query_chosen_chat.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/switch_inline_query_chosen_chat.po index 2219a1a1..6b446185 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/switch_inline_query_chosen_chat.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/switch_inline_query_chosen_chat.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-01 20:49+0300\n" +"POT-Creation-Date: 2023-07-02 15:10+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/update.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/update.po index 940848f4..342d9e20 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/update.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/update.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" +"POT-Creation-Date: 2023-10-29 02:16+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.1\n" #: ../../api/types/update.rst:3 msgid "Update" @@ -124,8 +124,9 @@ msgstr "" #: ../../docstring aiogram.types.update.Update.chat_member:1 of msgid "" "*Optional*. A chat member's status was updated in a chat. The bot must be" -" an administrator in the chat and must explicitly specify 'chat_member' " -"in the list of *allowed_updates* to receive these updates." +" an administrator in the chat and must explicitly specify " +":code:`\"chat_member\"` in the list of *allowed_updates* to receive these" +" updates." msgstr "" #: ../../docstring aiogram.types.update.Update.chat_join_request:1 of @@ -146,3 +147,12 @@ msgstr "" #: aiogram.types.update.UpdateTypeLookupError:1 of msgid "Update does not contain any known event type." msgstr "" + +#~ msgid "" +#~ "*Optional*. A chat member's status was" +#~ " updated in a chat. The bot " +#~ "must be an administrator in the " +#~ "chat and must explicitly specify " +#~ "'chat_member' in the list of " +#~ "*allowed_updates* to receive these updates." +#~ msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/web_app_info.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/web_app_info.po index 4a2e122f..912f766a 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/web_app_info.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/web_app_info.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" +"POT-Creation-Date: 2023-10-08 19:04+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../api/types/web_app_info.rst:3 msgid "WebAppInfo" @@ -33,5 +33,13 @@ msgstr "" msgid "" "An HTTPS URL of a Web App to be opened with additional data as specified " "in `Initializing Web Apps `_" +"#initializing-mini-apps>`_" msgstr "" + +#~ msgid "" +#~ "An HTTPS URL of a Web App to" +#~ " be opened with additional data as" +#~ " specified in `Initializing Web Apps " +#~ "`_" +#~ msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/types/write_access_allowed.po b/docs/locale/uk_UA/LC_MESSAGES/api/types/write_access_allowed.po index e432092c..f95a7f76 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/types/write_access_allowed.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/types/write_access_allowed.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-01 20:49+0300\n" +"POT-Creation-Date: 2023-10-08 19:04+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -24,17 +24,39 @@ msgstr "" #: aiogram.types.write_access_allowed.WriteAccessAllowed:1 of msgid "" "This object represents a service message about a user allowing a bot to " -"write messages after adding the bot to the attachment menu or launching a" -" Web App from a link." + +"write messages after adding it to the attachment menu, launching a Web " +"App from a link, or accepting an explicit request from a Web App sent by " +"the method `requestWriteAccess `_." msgstr "" #: aiogram.types.write_access_allowed.WriteAccessAllowed:3 of msgid "Source: https://core.telegram.org/bots/api#writeaccessallowed" msgstr "" +#: ../../docstring +#: aiogram.types.write_access_allowed.WriteAccessAllowed.from_request:1 of +msgid "" +"*Optional*. True, if the access was granted after the user accepted an " +"explicit request from a Web App sent by the method `requestWriteAccess " +"`_" +msgstr "" + #: ../../docstring #: aiogram.types.write_access_allowed.WriteAccessAllowed.web_app_name:1 of -msgid "*Optional*. Name of the Web App which was launched from a link" +msgid "" +"*Optional*. Name of the Web App, if the access was granted when the Web " +"App was launched from a link" +msgstr "" + +#: ../../docstring +#: aiogram.types.write_access_allowed.WriteAccessAllowed.from_attachment_menu:1 +#: of +msgid "" +"*Optional*. True, if the access was granted when the bot was added to the" +" attachment or side menu" + msgstr "" #~ msgid "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/api/upload_file.po b/docs/locale/uk_UA/LC_MESSAGES/api/upload_file.po index 2ad831fc..4e133adb 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/api/upload_file.po +++ b/docs/locale/uk_UA/LC_MESSAGES/api/upload_file.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: aiogram\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-01 20:49+0300\n" +"POT-Creation-Date: 2023-07-02 15:10+0300\n" "PO-Revision-Date: 2022-12-13 21:40+0200\n" "Last-Translator: \n" "Language-Team: \n" diff --git a/docs/locale/uk_UA/LC_MESSAGES/changelog.po b/docs/locale/uk_UA/LC_MESSAGES/changelog.po index cfc08710..0a089f25 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/changelog.po +++ b/docs/locale/uk_UA/LC_MESSAGES/changelog.po @@ -8,176 +8,594 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-01 20:49+0300\n" +"POT-Creation-Date: 2023-10-29 02:16+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.12.1\n" +"Generated-By: Babel 2.13.1\n" #: ../../../CHANGES.rst:3 msgid "Changelog" msgstr "" #: ../../[towncrier-fragments]:2 -msgid "\\ |release| [UNRELEASED DRAFT] (2023-06-01)" +msgid "\\ |release| [UNRELEASED DRAFT] (2023-10-29)" msgstr "" -#: ../../../CHANGES.rst:56 ../../../CHANGES.rst:156 ../../../CHANGES.rst:216 -#: ../../../CHANGES.rst:267 ../../../CHANGES.rst:340 ../../../CHANGES.rst:381 -#: ../../../CHANGES.rst:419 ../../../CHANGES.rst:467 ../../../CHANGES.rst:543 -#: ../../../CHANGES.rst:576 ../../../CHANGES.rst:607 +#: ../../../CHANGES.rst:33 ../../../CHANGES.rst:122 ../../../CHANGES.rst:180 +#: ../../../CHANGES.rst:222 ../../../CHANGES.rst:385 ../../../CHANGES.rst:485 +#: ../../../CHANGES.rst:545 ../../../CHANGES.rst:596 ../../../CHANGES.rst:669 +#: ../../../CHANGES.rst:710 ../../../CHANGES.rst:748 ../../../CHANGES.rst:796 +#: ../../../CHANGES.rst:872 ../../../CHANGES.rst:905 ../../../CHANGES.rst:936 #: ../../[towncrier-fragments]:5 msgid "Features" msgstr "" #: ../../[towncrier-fragments]:7 msgid "" -"If router does not support custom event it does not break and passes it " -"to included routers `#1147 " -"`_" +"The new FSM strategy CHAT_TOPIC, which sets the state for the entire " +"topic in the chat, also works in private messages and regular groups " +"without topics. `#1343 `_" msgstr "" -#: ../../[towncrier-fragments]:9 -msgid "Added support for FSM in Forum topics." -msgstr "" - -#: ../../[towncrier-fragments]:13 -msgid "The strategy can be changed in dispatcher:" -msgstr "" - -#: ../../[towncrier-fragments]:39 -msgid "" -"If you have implemented you own storages you should extend record key " -"generation" -msgstr "" - -#: ../../[towncrier-fragments]:41 -msgid "with new one attribute - `thread_id`" -msgstr "" - -#: ../../[towncrier-fragments]:42 -msgid "`#1161 `_" -msgstr "" - -#: ../../[towncrier-fragments]:43 -msgid "Improved CallbackData serialization." -msgstr "" - -#: ../../[towncrier-fragments]:47 -msgid "Minimized UUID (hex without dashes)" -msgstr "" - -#: ../../[towncrier-fragments]:49 -msgid "Replaced bool values with int (true=1, false=0)" -msgstr "" - -#: ../../[towncrier-fragments]:50 -msgid "`#1163 `_" -msgstr "" - -#: ../../[towncrier-fragments]:51 -msgid "" -"Add auto_resolve_update_types argument to start_polling method to collect" -" the used update types automatically. `#1178 " -"`_" -msgstr "" - -#: ../../../CHANGES.rst:118 ../../../CHANGES.rst:181 ../../../CHANGES.rst:230 -#: ../../../CHANGES.rst:291 ../../../CHANGES.rst:349 ../../../CHANGES.rst:395 -#: ../../../CHANGES.rst:443 ../../../CHANGES.rst:499 ../../../CHANGES.rst:584 -#: ../../../CHANGES.rst:616 ../../[towncrier-fragments]:56 +#: ../../../CHANGES.rst:23 ../../../CHANGES.rst:44 ../../../CHANGES.rst:56 +#: ../../../CHANGES.rst:77 ../../../CHANGES.rst:146 ../../../CHANGES.rst:191 +#: ../../../CHANGES.rst:261 ../../../CHANGES.rst:447 ../../../CHANGES.rst:510 +#: ../../../CHANGES.rst:559 ../../../CHANGES.rst:620 ../../../CHANGES.rst:678 +#: ../../../CHANGES.rst:724 ../../../CHANGES.rst:772 ../../../CHANGES.rst:828 +#: ../../../CHANGES.rst:913 ../../../CHANGES.rst:945 +#: ../../[towncrier-fragments]:12 msgid "Bugfixes" msgstr "" -#: ../../[towncrier-fragments]:58 +#: ../../[towncrier-fragments]:97 msgid "" -"Change type of result in InlineQueryResult enum for " -"`InlineQueryResultCachedMpeg4Gif`" +"Fixed ``parse_mode`` in ``send_copy`` helper. Disable by default. `#1332 " +"`_" msgstr "" -#: ../../[towncrier-fragments]:60 +#: ../../../CHANGES.rst:89 ../../../CHANGES.rst:159 ../../../CHANGES.rst:204 +#: ../../../CHANGES.rst:289 ../../../CHANGES.rst:522 ../../../CHANGES.rst:572 +#: ../../../CHANGES.rst:952 ../../[towncrier-fragments]:19 +msgid "Improved Documentation" +msgstr "" + +#: ../../[towncrier-fragments]:21 msgid "" -"and `InlineQueryResultMpeg4Gif` to more correct according to " +"Corrected grammatical errors, improved sentence structures, translation " +"for migration 2.x-3.x `#1302 " +"`_" +msgstr "" + +#: ../../[towncrier-fragments]:23 +msgid "" +"Minor typo correction, specifically in module naming + some grammar. " +"`#1340 `_" +msgstr "" + +#: ../../[towncrier-fragments]:25 +msgid "" +"Added `CITATION.cff` file for automatic academic citation generation. Now" +" you can copy citation from the GitHub page and paste it into your paper." +" `#1351 `_" +msgstr "" + +#: ../../../CHANGES.rst:110 ../../../CHANGES.rst:166 ../../../CHANGES.rst:305 +#: ../../../CHANGES.rst:456 ../../../CHANGES.rst:533 ../../../CHANGES.rst:586 +#: ../../../CHANGES.rst:637 ../../../CHANGES.rst:691 ../../../CHANGES.rst:733 +#: ../../../CHANGES.rst:779 ../../../CHANGES.rst:839 ../../../CHANGES.rst:860 +#: ../../../CHANGES.rst:883 ../../../CHANGES.rst:920 ../../../CHANGES.rst:959 +#: ../../[towncrier-fragments]:31 +msgid "Misc" +msgstr "" + +#: ../../[towncrier-fragments]:33 +msgid "Updated dependencies, bumped minimum required version:" +msgstr "" + +#: ../../[towncrier-fragments]:35 +msgid ":code:`magic-filter` - fixed `.resolve` operation" +msgstr "" + +#: ../../[towncrier-fragments]:36 +msgid ":code:`pydantic` - fixed compatibility (broken in 2.4)" +msgstr "" + +#: ../../[towncrier-fragments]:37 +msgid "" +":code:`aiodns` - added new dependency to the :code:`fast` extras " +"(:code:`pip install aiogram[fast]`)" +msgstr "" + +#: ../../[towncrier-fragments]:38 +msgid "*others...*" +msgstr "" + +#: ../../[towncrier-fragments]:39 +msgid "`#1327 `_" +msgstr "" + +#: ../../[towncrier-fragments]:40 +msgid "" +"Prevent update handling task pointers from being garbage collected, " +"backport from 2.x `#1331 " +"`_" +msgstr "" + +#: ../../[towncrier-fragments]:42 +msgid "" +"Updated :code:`typing-extensions` package version range in dependencies " +"to fix compatibility with :code:`FastAPI` `#1347 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:20 +msgid "3.1.1 (2023-09-25)" +msgstr "" + +#: ../../../CHANGES.rst:25 +msgid "" +"Fixed `pydantic` version <2.4, since 2.4 has breaking changes. `#1322 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:30 +msgid "3.1.0 (2023-09-22)" +msgstr "" + +#: ../../../CHANGES.rst:35 +msgid "" +"Added support for custom encoders/decoders for payload (and also for " +"deep-linking). `#1262 `_" +msgstr "" + +#: ../../../CHANGES.rst:37 +msgid "" +"Added :class:`aiogram.utils.input_media.MediaGroupBuilder` for media " +"group construction. `#1293 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:39 +msgid "" +"Added full support of `Bot API 6.9 `_ `#1319 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:46 +msgid "" +"Added actual param hints for `InlineKeyboardBuilder` and " +"`ReplyKeyboardBuilder`. `#1303 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:48 +msgid "" +"Fixed priority of events isolation, now user state will be loaded only " +"after lock is acquired `#1317 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:53 +msgid "3.0.0 (2023-09-01)" +msgstr "" + +#: ../../../CHANGES.rst:58 +msgid "" +"Replaced :code:`datetime.datetime` with `DateTime` type wrapper across " +"types to make dumped JSONs object more compatible with data that is sent " +"by Telegram. `#1277 `_" +msgstr "" + +#: ../../../CHANGES.rst:61 +msgid "" +"Fixed magic :code:`.as_(...)` operation for values that can be " +"interpreted as `False` (e.g. `0`). `#1281 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:63 +msgid "" +"Italic markdown from utils now uses correct decorators `#1282 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:65 +msgid "" +"Fixed method :code:`Message.send_copy` for stickers. `#1284 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:67 +msgid "" +"Fixed :code:`Message.send_copy` method, which was not working properly " +"with stories, so not you can copy stories too (forwards messages). `#1286" +" `_" +msgstr "" + +#: ../../../CHANGES.rst:69 +msgid "" +"Fixed error overlapping when validation error is caused by remove_unset " +"root validator in base types and methods. `#1290 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:74 +msgid "3.0.0rc2 (2023-08-18)" +msgstr "" + +#: ../../../CHANGES.rst:79 +msgid "" +"Fixed missing message content types (:code:`ContentType.USER_SHARED`, " +":code:`ContentType.CHAT_SHARED`) `#1252 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:81 +msgid "" +"Fixed nested hashtag, cashtag and email message entities not being parsed" +" correctly when these entities are inside another entity. `#1259 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:83 +msgid "" +"Moved global filters check placement into router to add chance to pass " +"context from global filters into handlers in the same way as it possible " +"in other places `#1266 `_" +msgstr "" + +#: ../../../CHANGES.rst:91 +msgid "" +"Added error handling example `examples/error_handling.py` `#1099 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:93 +msgid "" +"Added a few words about skipping pending updates `#1251 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:95 +msgid "" +"Added a section on Dependency Injection technology `#1253 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:97 +msgid "" +"This update includes the addition of a multi-file bot example to the " +"repository. `#1254 `_" +msgstr "" + +#: ../../../CHANGES.rst:99 +msgid "" +"Refactored examples code to use aiogram enumerations and enhanced chat " +"messages with markdown beautification's for a more user-friendly display." +" `#1256 `_" +msgstr "" + +#: ../../../CHANGES.rst:102 +msgid "" +"Supplemented \"Finite State Machine\" section in Migration FAQ `#1264 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:104 +msgid "" +"Removed extra param in docstring of TelegramEventObserver's filter method" +" and fixed typo in I18n documentation. `#1268 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:112 +msgid "" +"Enhanced the warning message in dispatcher to include a JSON dump of the " +"update when update type is not known. `#1269 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:114 +msgid "" +"Added support for `Bot API 6.8 `_ `#1275 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:119 +msgid "3.0.0rc1 (2023-08-06)" +msgstr "" + +#: ../../../CHANGES.rst:124 +msgid "Added Currency enum. You can use it like this:" +msgstr "" + +#: ../../../CHANGES.rst:136 +msgid "`#1194 `_" +msgstr "" + +#: ../../../CHANGES.rst:137 +msgid "" +"Updated keyboard builders with new methods for integrating buttons and " +"keyboard creation more seamlessly. Added functionality to create buttons " +"from existing markup and attach another builder. This improvement aims to" +" make the keyboard building process more user-friendly and flexible. " +"`#1236 `_" +msgstr "" + +#: ../../../CHANGES.rst:141 +msgid "" +"Added support for message_thread_id in ChatActionSender `#1249 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:148 +msgid "" +"Fixed polling startup when \"bot\" key is passed manually into dispatcher" +" workflow data `#1242 `_" +msgstr "" + +#: ../../../CHANGES.rst:150 +msgid "Added codegen configuration for lost shortcuts:" +msgstr "" + +#: ../../../CHANGES.rst:152 +msgid "ShippingQuery.answer" +msgstr "" + +#: ../../../CHANGES.rst:153 +msgid "PreCheckoutQuery.answer" +msgstr "" + +#: ../../../CHANGES.rst:154 +msgid "Message.delete_reply_markup" +msgstr "" + +#: ../../../CHANGES.rst:155 +msgid "`#1244 `_" +msgstr "" + +#: ../../../CHANGES.rst:161 +msgid "" +"Added documentation for webhook and polling modes. `#1241 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:168 +msgid "" +"Reworked InputFile reading, removed :code:`__aiter__` method, added `bot:" +" Bot` argument to the :code:`.read(...)` method, so, from now " +"URLInputFile can be used without specifying bot instance. `#1238 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:172 +msgid "" +"Code-generated :code:`__init__` typehints in types and methods to make " +"IDE happy without additional pydantic plugin `#1245 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:177 +msgid "3.0.0b9 (2023-07-30)" +msgstr "" + +#: ../../../CHANGES.rst:182 +msgid "" +"Added new shortcuts for " +":class:`aiogram.types.chat_member_updated.ChatMemberUpdated` to send " +"message to chat that member joined/left. `#1234 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:185 +msgid "" +"Added new shortcuts for " +":class:`aiogram.types.chat_join_request.ChatJoinRequest` to make easier " +"access to sending messages to users who wants to join to chat. `#1235 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:193 +msgid "" +"Fixed bot assignment in the :code:`Message.send_copy` shortcut `#1232 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:195 +msgid "" +"Added model validation to remove UNSET before field validation. This " +"change was necessary to correctly handle parse_mode where 'UNSET' is used" +" as a sentinel value. Without the removal of 'UNSET', it would create " +"issues when passed to model initialization from Bot.method_name. 'UNSET' " +"was also added to typing. `#1233 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:200 +msgid "Updated pydantic to 2.1 with few bugfixes" +msgstr "" + +#: ../../../CHANGES.rst:206 +msgid "" +"Improved docs, added basic migration guide (will be expanded later) " +"`#1143 `_" +msgstr "" + +#: ../../../CHANGES.rst:211 ../../../CHANGES.rst:296 ../../../CHANGES.rst:579 +msgid "Deprecations and Removals" +msgstr "" + +#: ../../../CHANGES.rst:213 +msgid "" +"Removed the use of the context instance (Bot.get_current) from all " +"placements that were used previously. This is to avoid the use of the " +"context instance in the wrong place. `#1230 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:219 +msgid "3.0.0b8 (2023-07-17)" +msgstr "" + +#: ../../../CHANGES.rst:224 +msgid "" +"Added possibility to use custom events in routers (If router does not " +"support custom event it does not break and passes it to included " +"routers). `#1147 `_" +msgstr "" + +#: ../../../CHANGES.rst:226 +msgid "Added support for FSM in Forum topics." +msgstr "" + +#: ../../../CHANGES.rst:228 +msgid "The strategy can be changed in dispatcher:" +msgstr "" + +#: ../../../CHANGES.rst:241 +msgid "" +"If you have implemented you own storages you should extend record key " +"generation with new one attribute - :code:`thread_id`" +msgstr "" + +#: ../../../CHANGES.rst:243 +msgid "`#1161 `_" +msgstr "" + +#: ../../../CHANGES.rst:244 +msgid "Improved CallbackData serialization." +msgstr "" + +#: ../../../CHANGES.rst:246 +msgid "Minimized UUID (hex without dashes)" +msgstr "" + +#: ../../../CHANGES.rst:247 +msgid "Replaced bool values with int (true=1, false=0)" +msgstr "" + +#: ../../../CHANGES.rst:248 +msgid "`#1163 `_" +msgstr "" + +#: ../../../CHANGES.rst:249 +msgid "" +"Added a tool to make text formatting flexible and easy. More details on " +"the :ref:`corresponding documentation page ` `#1172 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:252 +msgid "" +"Added :code:`X-Telegram-Bot-Api-Secret-Token` header check `#1173 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:254 +msgid "" +"Made :code:`allowed_updates` list to revolve automatically in " +"start_polling method if not set explicitly. `#1178 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:256 +msgid "" +"Added possibility to pass custom headers to :class:`URLInputFile` object " +"`#1191 `_" +msgstr "" + +#: ../../../CHANGES.rst:263 +msgid "" +"Change type of result in InlineQueryResult enum for " +":code:`InlineQueryResultCachedMpeg4Gif` and " +":code:`InlineQueryResultMpeg4Gif` to more correct according to " "documentation." msgstr "" -#: ../../[towncrier-fragments]:64 +#: ../../../CHANGES.rst:266 msgid "" "Change regexp for entities parsing to more correct " -"(`InlineQueryResultType.yml`). `#1146 " +"(:code:`InlineQueryResultType.yml`). `#1146 " "`_" msgstr "" -#: ../../[towncrier-fragments]:66 +#: ../../../CHANGES.rst:268 msgid "" "Fixed signature of startup/shutdown events to include the " -"**dispatcher.workflow_data as the handler arguments. `#1155 " +":code:`**dispatcher.workflow_data` as the handler arguments. `#1155 " "`_" msgstr "" -#: ../../[towncrier-fragments]:68 +#: ../../../CHANGES.rst:270 msgid "" -"Added missing FORUM_TOPIC_EDITED value to content_type property `#1160 " -"`_" +"Added missing :code:`FORUM_TOPIC_EDITED` value to content_type property " +"`#1160 `_" msgstr "" -#: ../../[towncrier-fragments]:70 +#: ../../../CHANGES.rst:272 msgid "" -"Fixed compatibility with Python 3.8-3.9 `#1162 " +"Fixed compatibility with Python 3.8-3.9 (from previous release) `#1162 " "`_" msgstr "" -#: ../../[towncrier-fragments]:72 +#: ../../../CHANGES.rst:274 msgid "" "Fixed the markdown spoiler parser. `#1176 " "`_" msgstr "" -#: ../../../CHANGES.rst:193 ../../../CHANGES.rst:243 ../../../CHANGES.rst:623 -#: ../../[towncrier-fragments]:77 -msgid "Improved Documentation" +#: ../../../CHANGES.rst:276 +msgid "" +"Fixed workflow data propagation `#1196 " +"`_" msgstr "" -#: ../../[towncrier-fragments]:79 +#: ../../../CHANGES.rst:278 msgid "" -"Changed small grammar typos for `upload_file` `#1133 " +"Fixed the serialization error associated with nested subtypes like " +"InputMedia, ChatMember, etc." +msgstr "" + +#: ../../../CHANGES.rst:281 +msgid "" +"The previously generated code resulted in an invalid schema under " +"pydantic v2, which has stricter type parsing. Hence, subtypes without the" +" specification of all subtype unions were generating an empty object. " +"This has been rectified now. `#1213 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:291 +msgid "" +"Changed small grammar typos for :code:`upload_file` `#1133 " "`_" msgstr "" -#: ../../../CHANGES.rst:250 ../../[towncrier-fragments]:84 -msgid "Deprecations and Removals" -msgstr "" - -#: ../../[towncrier-fragments]:86 +#: ../../../CHANGES.rst:298 msgid "" "Removed text filter in due to is planned to remove this filter few " "versions ago." msgstr "" -#: ../../[towncrier-fragments]:90 +#: ../../../CHANGES.rst:300 msgid "" "Use :code:`F.text` instead `#1170 " "`_" msgstr "" -#: ../../../CHANGES.rst:127 ../../../CHANGES.rst:204 ../../../CHANGES.rst:257 -#: ../../../CHANGES.rst:308 ../../../CHANGES.rst:362 ../../../CHANGES.rst:404 -#: ../../../CHANGES.rst:450 ../../../CHANGES.rst:510 ../../../CHANGES.rst:531 -#: ../../../CHANGES.rst:554 ../../../CHANGES.rst:591 ../../../CHANGES.rst:630 -#: ../../[towncrier-fragments]:95 -msgid "Misc" -msgstr "" - -#: ../../[towncrier-fragments]:97 +#: ../../../CHANGES.rst:307 msgid "" "Added full support of `Bot API 6.6 `_" msgstr "" -#: ../../[towncrier-fragments]:105 +#: ../../../CHANGES.rst:311 msgid "" "Note that this issue has breaking changes described in in the Bot API " "changelog," @@ -193,87 +611,124 @@ msgstr "" msgid "Beta stage is not finished." msgstr "" -#: ../../[towncrier-fragments]:110 +#: ../../../CHANGES.rst:314 msgid "`#1139 `_" msgstr "" -#: ../../[towncrier-fragments]:111 -msgid "" -"Added global defaults `disable_web_page_preview` and `protect_content` in" -" addition to `parse_mode` to the Bot instance," -msgstr "" - -#: ../../[towncrier-fragments]:113 -msgid "" -"reworked internal request builder mechanism. `#1142 " -"`_" -msgstr "" - -#: ../../[towncrier-fragments]:115 -msgid "" -"Removed bot parameters from storages `#1144 " -"`_" -msgstr "" - -#: ../../[towncrier-fragments]:117 +#: ../../../CHANGES.rst:315 msgid "" "Added full support of `Bot API 6.7 `_" msgstr "" -#: ../../[towncrier-fragments]:125 +#: ../../../CHANGES.rst:319 msgid "" "Note that arguments *switch_pm_parameter* and *switch_pm_text* was " -"deprecated" +"deprecated and should be changed to *button* argument as described in API" +" docs." msgstr "" -#: ../../[towncrier-fragments]:127 -msgid "and should be changed to *button* argument as described in API docs." -msgstr "" - -#: ../../[towncrier-fragments]:128 +#: ../../../CHANGES.rst:321 msgid "`#1168 `_" msgstr "" -#: ../../../CHANGES.rst:20 +#: ../../../CHANGES.rst:322 +msgid "Updated `Pydantic to V2 `_" +msgstr "" + +#: ../../../CHANGES.rst:326 +msgid "Be careful, not all libraries is already updated to using V2" +msgstr "" + +#: ../../../CHANGES.rst:327 +msgid "`#1202 `_" +msgstr "" + +#: ../../../CHANGES.rst:328 +msgid "" +"Added global defaults :code:`disable_web_page_preview` and " +":code:`protect_content` in addition to :code:`parse_mode` to the Bot " +"instance, reworked internal request builder mechanism. `#1142 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:331 +msgid "" +"Removed bot parameters from storages `#1144 " +"`_" +msgstr "" + +#: ../../../CHANGES.rst:334 +msgid "" +"Replaced ContextVar's with a new feature called `Validation Context " +"`_" +" in Pydantic to improve the clarity, usability, and versatility of " +"handling the Bot instance within method shortcuts." +msgstr "" + +#: ../../../CHANGES.rst:339 +msgid "**Breaking**: The 'bot' argument now is required in `URLInputFile`" +msgstr "" + +#: ../../../CHANGES.rst:340 +msgid "`#1210 `_" +msgstr "" + +#: ../../../CHANGES.rst:341 +msgid "Updated magic-filter with new features" +msgstr "" + +#: ../../../CHANGES.rst:343 +msgid "Added hint for :code:`len(F)` error" +msgstr "" + +#: ../../../CHANGES.rst:344 +msgid "Added not in operation" +msgstr "" + +#: ../../../CHANGES.rst:345 +msgid "`#1221 `_" +msgstr "" + +#: ../../../CHANGES.rst:349 msgid "3.0.0b7 (2023-02-18)" msgstr "" -#: ../../../CHANGES.rst:24 +#: ../../../CHANGES.rst:353 msgid "" "Note that this version has incompatibility with Python 3.8-3.9 in case " "when you create an instance of Dispatcher outside of the any coroutine." msgstr "" -#: ../../../CHANGES.rst:26 +#: ../../../CHANGES.rst:355 msgid "Sorry for the inconvenience, it will be fixed in the next version." msgstr "" -#: ../../../CHANGES.rst:28 +#: ../../../CHANGES.rst:357 msgid "This code will not work:" msgstr "" -#: ../../../CHANGES.rst:40 +#: ../../../CHANGES.rst:369 msgid "But if you change it like this it should works as well:" msgstr "" -#: ../../../CHANGES.rst:58 +#: ../../../CHANGES.rst:387 msgid "Added missing shortcuts, new enums, reworked old stuff" msgstr "" -#: ../../../CHANGES.rst:60 +#: ../../../CHANGES.rst:389 msgid "" "**Breaking** All previously added enums is re-generated in new place - " "`aiogram.enums` instead of `aiogram.types`" msgstr "" -#: ../../../CHANGES.rst:78 +#: ../../../CHANGES.rst:407 msgid "" "**Added enums:** " ":class:`aiogram.enums.bot_command_scope_type.BotCommandScopeType`," msgstr "" -#: ../../../CHANGES.rst:64 +#: ../../../CHANGES.rst:393 msgid "" ":class:`aiogram.enums.chat_action.ChatAction`, " ":class:`aiogram.enums.chat_member_status.ChatMemberStatus`, " @@ -292,15 +747,15 @@ msgid "" ":class:`aiogram.enums.update_type.UpdateType`," msgstr "" -#: ../../../CHANGES.rst:80 +#: ../../../CHANGES.rst:409 msgid "**Added shortcuts**:" msgstr "" -#: ../../../CHANGES.rst:105 +#: ../../../CHANGES.rst:434 msgid "*Chat* :meth:`aiogram.types.chat.Chat.get_administrators`," msgstr "" -#: ../../../CHANGES.rst:83 +#: ../../../CHANGES.rst:412 msgid "" ":meth:`aiogram.types.chat.Chat.delete_message`, " ":meth:`aiogram.types.chat.Chat.revoke_invite_link`, " @@ -328,85 +783,85 @@ msgid "" ":meth:`aiogram.types.chat.Chat.set_photo`," msgstr "" -#: ../../../CHANGES.rst:107 +#: ../../../CHANGES.rst:436 msgid "*Sticker*: :meth:`aiogram.types.sticker.Sticker.set_position_in_set`," msgstr "" -#: ../../../CHANGES.rst:108 +#: ../../../CHANGES.rst:437 msgid ":meth:`aiogram.types.sticker.Sticker.delete_from_set`," msgstr "" -#: ../../../CHANGES.rst:109 +#: ../../../CHANGES.rst:438 msgid "*User*: :meth:`aiogram.types.user.User.get_profile_photos`" msgstr "" -#: ../../../CHANGES.rst:110 +#: ../../../CHANGES.rst:439 msgid "`#952 `_" msgstr "" -#: ../../../CHANGES.rst:111 +#: ../../../CHANGES.rst:440 msgid "" "Added :ref:`callback answer ` feature `#1091 " "`_" msgstr "" -#: ../../../CHANGES.rst:113 +#: ../../../CHANGES.rst:442 msgid "" "Added a method that allows you to compactly register routers `#1117 " "`_" msgstr "" -#: ../../../CHANGES.rst:120 +#: ../../../CHANGES.rst:449 msgid "" "Check status code when downloading file `#816 " "`_" msgstr "" -#: ../../../CHANGES.rst:122 +#: ../../../CHANGES.rst:451 msgid "" "Fixed `ignore_case` parameter in :obj:`aiogram.filters.command.Command` " "filter `#1106 `_" msgstr "" -#: ../../../CHANGES.rst:129 +#: ../../../CHANGES.rst:458 msgid "" "Added integration with new code-generator named `Butcher " "`_ `#1069 " "`_" msgstr "" -#: ../../../CHANGES.rst:131 +#: ../../../CHANGES.rst:460 msgid "" "Added full support of `Bot API 6.4 `_ `#1088 " "`_" msgstr "" -#: ../../../CHANGES.rst:133 +#: ../../../CHANGES.rst:462 msgid "" "Updated package metadata, moved build internals from Poetry to Hatch, " "added contributing guides. `#1095 " "`_" msgstr "" -#: ../../../CHANGES.rst:135 +#: ../../../CHANGES.rst:464 msgid "" "Added full support of `Bot API 6.5 `_" msgstr "" -#: ../../../CHANGES.rst:139 +#: ../../../CHANGES.rst:468 msgid "" "Note that :obj:`aiogram.types.chat_permissions.ChatPermissions` is " "updated without backward compatibility, so now this object has no " ":code:`can_send_media_messages` attribute" msgstr "" -#: ../../../CHANGES.rst:141 +#: ../../../CHANGES.rst:470 msgid "`#1112 `_" msgstr "" -#: ../../../CHANGES.rst:142 +#: ../../../CHANGES.rst:471 msgid "" "Replaced error :code:`TypeError: TelegramEventObserver.__call__() got an " "unexpected keyword argument ''` with a more understandable one for " @@ -414,13 +869,13 @@ msgid "" "`_" msgstr "" -#: ../../../CHANGES.rst:145 +#: ../../../CHANGES.rst:474 msgid "" "Added possibility to reply into webhook with files `#1120 " "`_" msgstr "" -#: ../../../CHANGES.rst:147 +#: ../../../CHANGES.rst:476 msgid "" "Reworked graceful shutdown. Added method to stop polling. Now polling " "started from dispatcher can be stopped by signals gracefully without " @@ -428,127 +883,127 @@ msgid "" "`_" msgstr "" -#: ../../../CHANGES.rst:153 +#: ../../../CHANGES.rst:482 msgid "3.0.0b6 (2022-11-18)" msgstr "" -#: ../../../CHANGES.rst:158 +#: ../../../CHANGES.rst:487 msgid "" "(again) Added possibility to combine filters with an *and*/*or* " "operations." msgstr "" -#: ../../../CHANGES.rst:160 +#: ../../../CHANGES.rst:489 msgid "" "Read more in \":ref:`Combining filters `\" " "documentation section `#1018 " "`_" msgstr "" -#: ../../../CHANGES.rst:162 +#: ../../../CHANGES.rst:491 msgid "Added following methods to ``Message`` class:" msgstr "" -#: ../../../CHANGES.rst:164 +#: ../../../CHANGES.rst:493 msgid ":code:`Message.forward(...)`" msgstr "" -#: ../../../CHANGES.rst:165 +#: ../../../CHANGES.rst:494 msgid ":code:`Message.edit_media(...)`" msgstr "" -#: ../../../CHANGES.rst:166 +#: ../../../CHANGES.rst:495 msgid ":code:`Message.edit_live_location(...)`" msgstr "" -#: ../../../CHANGES.rst:167 +#: ../../../CHANGES.rst:496 msgid ":code:`Message.stop_live_location(...)`" msgstr "" -#: ../../../CHANGES.rst:168 +#: ../../../CHANGES.rst:497 msgid ":code:`Message.pin(...)`" msgstr "" -#: ../../../CHANGES.rst:169 +#: ../../../CHANGES.rst:498 msgid ":code:`Message.unpin()`" msgstr "" -#: ../../../CHANGES.rst:170 +#: ../../../CHANGES.rst:499 msgid "`#1030 `_" msgstr "" -#: ../../../CHANGES.rst:171 +#: ../../../CHANGES.rst:500 msgid "Added following methods to :code:`User` class:" msgstr "" -#: ../../../CHANGES.rst:173 +#: ../../../CHANGES.rst:502 msgid ":code:`User.mention_markdown(...)`" msgstr "" -#: ../../../CHANGES.rst:174 +#: ../../../CHANGES.rst:503 msgid ":code:`User.mention_html(...)`" msgstr "" -#: ../../../CHANGES.rst:175 +#: ../../../CHANGES.rst:504 msgid "`#1049 `_" msgstr "" -#: ../../../CHANGES.rst:176 +#: ../../../CHANGES.rst:505 msgid "" "Added full support of `Bot API 6.3 `_ `#1057 " "`_" msgstr "" -#: ../../../CHANGES.rst:183 +#: ../../../CHANGES.rst:512 msgid "" "Fixed :code:`Message.send_invoice` and :code:`Message.reply_invoice`, " "added missing arguments `#1047 " "`_" msgstr "" -#: ../../../CHANGES.rst:185 +#: ../../../CHANGES.rst:514 msgid "Fixed copy and forward in:" msgstr "" -#: ../../../CHANGES.rst:187 +#: ../../../CHANGES.rst:516 msgid ":code:`Message.answer(...)`" msgstr "" -#: ../../../CHANGES.rst:188 +#: ../../../CHANGES.rst:517 msgid ":code:`Message.copy_to(...)`" msgstr "" -#: ../../../CHANGES.rst:189 +#: ../../../CHANGES.rst:518 msgid "`#1064 `_" msgstr "" -#: ../../../CHANGES.rst:195 +#: ../../../CHANGES.rst:524 msgid "" "Fixed UA translations in index.po `#1017 " "`_" msgstr "" -#: ../../../CHANGES.rst:197 +#: ../../../CHANGES.rst:526 msgid "" "Fix typehints for :code:`Message`, :code:`reply_media_group` and " ":code:`answer_media_group` methods `#1029 " "`_" msgstr "" -#: ../../../CHANGES.rst:199 +#: ../../../CHANGES.rst:528 msgid "" "Removed an old now non-working feature `#1060 " "`_" msgstr "" -#: ../../../CHANGES.rst:206 +#: ../../../CHANGES.rst:535 msgid "" "Enabled testing on Python 3.11 `#1044 " "`_" msgstr "" -#: ../../../CHANGES.rst:208 +#: ../../../CHANGES.rst:537 msgid "" "Added a mandatory dependency :code:`certifi` in due to in some cases on " "systems that doesn't have updated ca-certificates the requests to Bot API" @@ -557,23 +1012,23 @@ msgid "" "`_" msgstr "" -#: ../../../CHANGES.rst:213 +#: ../../../CHANGES.rst:542 msgid "3.0.0b5 (2022-10-02)" msgstr "" -#: ../../../CHANGES.rst:218 +#: ../../../CHANGES.rst:547 msgid "" "Add PyPy support and run tests under PyPy `#985 " "`_" msgstr "" -#: ../../../CHANGES.rst:220 +#: ../../../CHANGES.rst:549 msgid "" "Added message text to aiogram exceptions representation `#988 " "`_" msgstr "" -#: ../../../CHANGES.rst:222 +#: ../../../CHANGES.rst:551 msgid "" "Added warning about using magic filter from `magic_filter` instead of " "`aiogram`'s ones. Is recommended to use `from aiogram import F` instead " @@ -581,61 +1036,61 @@ msgid "" "`_" msgstr "" -#: ../../../CHANGES.rst:225 +#: ../../../CHANGES.rst:554 msgid "" "Added more detailed error when server response can't be deserialized. " "This feature will help to debug unexpected responses from the Server " "`#1014 `_" msgstr "" -#: ../../../CHANGES.rst:232 +#: ../../../CHANGES.rst:561 msgid "" "Reworked error event, introduced " ":class:`aiogram.types.error_event.ErrorEvent` object. `#898 " "`_" msgstr "" -#: ../../../CHANGES.rst:234 +#: ../../../CHANGES.rst:563 msgid "" "Fixed escaping markdown in `aiogram.utils.markdown` module `#903 " "`_" msgstr "" -#: ../../../CHANGES.rst:236 +#: ../../../CHANGES.rst:565 msgid "" "Fixed polling crash when Telegram Bot API raises HTTP 429 status-code. " "`#995 `_" msgstr "" -#: ../../../CHANGES.rst:238 +#: ../../../CHANGES.rst:567 msgid "" "Fixed empty mention in command parsing, now it will be None instead of an" " empty string `#1013 `_" msgstr "" -#: ../../../CHANGES.rst:245 +#: ../../../CHANGES.rst:574 msgid "" "Initialized Docs translation (added Ukrainian language) `#925 " "`_" msgstr "" -#: ../../../CHANGES.rst:252 +#: ../../../CHANGES.rst:581 msgid "" "Removed filters factory as described in corresponding issue. `#942 " "`_" msgstr "" -#: ../../../CHANGES.rst:259 +#: ../../../CHANGES.rst:588 msgid "" "Now Router/Dispatcher accepts only keyword arguments. `#982 " "`_" msgstr "" -#: ../../../CHANGES.rst:264 +#: ../../../CHANGES.rst:593 msgid "3.0.0b4 (2022-08-14)" msgstr "" -#: ../../../CHANGES.rst:269 +#: ../../../CHANGES.rst:598 msgid "" "Add class helper ChatAction for constants that Telegram BotAPI uses in " "sendChatAction request. In my opinion, this will help users and will also" @@ -643,198 +1098,198 @@ msgid "" "\"ChatActions\". `#803 `_" msgstr "" -#: ../../../CHANGES.rst:273 +#: ../../../CHANGES.rst:602 msgid "Added possibility to combine filters or invert result" msgstr "" -#: ../../../CHANGES.rst:275 +#: ../../../CHANGES.rst:604 msgid "Example:" msgstr "" -#: ../../../CHANGES.rst:283 +#: ../../../CHANGES.rst:612 msgid "`#894 `_" msgstr "" -#: ../../../CHANGES.rst:284 +#: ../../../CHANGES.rst:613 msgid "" "Fixed type hints for redis TTL params. `#922 " "`_" msgstr "" -#: ../../../CHANGES.rst:286 +#: ../../../CHANGES.rst:615 msgid "" "Added `full_name` shortcut for `Chat` object `#929 " "`_" msgstr "" -#: ../../../CHANGES.rst:293 +#: ../../../CHANGES.rst:622 msgid "" "Fixed false-positive coercing of Union types in API methods `#901 " "`_" msgstr "" -#: ../../../CHANGES.rst:295 +#: ../../../CHANGES.rst:624 msgid "Added 3 missing content types:" msgstr "" -#: ../../../CHANGES.rst:297 +#: ../../../CHANGES.rst:626 msgid "proximity_alert_triggered" msgstr "" -#: ../../../CHANGES.rst:298 +#: ../../../CHANGES.rst:627 msgid "supergroup_chat_created" msgstr "" -#: ../../../CHANGES.rst:299 +#: ../../../CHANGES.rst:628 msgid "channel_chat_created" msgstr "" -#: ../../../CHANGES.rst:300 +#: ../../../CHANGES.rst:629 msgid "`#906 `_" msgstr "" -#: ../../../CHANGES.rst:301 +#: ../../../CHANGES.rst:630 msgid "" "Fixed the ability to compare the state, now comparison to copy of the " "state will return `True`. `#927 " "`_" msgstr "" -#: ../../../CHANGES.rst:303 +#: ../../../CHANGES.rst:632 msgid "" "Fixed default lock kwargs in RedisEventIsolation. `#972 " "`_" msgstr "" -#: ../../../CHANGES.rst:310 +#: ../../../CHANGES.rst:639 msgid "" "Restrict including routers with strings `#896 " "`_" msgstr "" -#: ../../../CHANGES.rst:312 +#: ../../../CHANGES.rst:641 msgid "" "Changed CommandPatterType to CommandPatternType in " "`aiogram/dispatcher/filters/command.py` `#907 " "`_" msgstr "" -#: ../../../CHANGES.rst:314 +#: ../../../CHANGES.rst:643 msgid "" "Added full support of `Bot API 6.1 `_ `#936 " "`_" msgstr "" -#: ../../../CHANGES.rst:316 +#: ../../../CHANGES.rst:645 msgid "**Breaking!** More flat project structure" msgstr "" -#: ../../../CHANGES.rst:318 +#: ../../../CHANGES.rst:647 msgid "These packages was moved, imports in your code should be fixed:" msgstr "" -#: ../../../CHANGES.rst:320 +#: ../../../CHANGES.rst:649 msgid ":code:`aiogram.dispatcher.filters` -> :code:`aiogram.filters`" msgstr "" -#: ../../../CHANGES.rst:321 +#: ../../../CHANGES.rst:650 msgid ":code:`aiogram.dispatcher.fsm` -> :code:`aiogram.fsm`" msgstr "" -#: ../../../CHANGES.rst:322 +#: ../../../CHANGES.rst:651 msgid ":code:`aiogram.dispatcher.handler` -> :code:`aiogram.handler`" msgstr "" -#: ../../../CHANGES.rst:323 +#: ../../../CHANGES.rst:652 msgid ":code:`aiogram.dispatcher.webhook` -> :code:`aiogram.webhook`" msgstr "" -#: ../../../CHANGES.rst:324 +#: ../../../CHANGES.rst:653 msgid "" ":code:`aiogram.dispatcher.flags/*` -> :code:`aiogram.dispatcher.flags` " "(single module instead of package)" msgstr "" -#: ../../../CHANGES.rst:325 +#: ../../../CHANGES.rst:654 msgid "`#938 `_" msgstr "" -#: ../../../CHANGES.rst:326 +#: ../../../CHANGES.rst:655 msgid "" "Removed deprecated :code:`router._handler` and " ":code:`router.register__handler` methods. `#941 " "`_" msgstr "" -#: ../../../CHANGES.rst:328 +#: ../../../CHANGES.rst:657 msgid "" "Deprecated filters factory. It will be removed in next Beta (3.0b5) `#942" " `_" msgstr "" -#: ../../../CHANGES.rst:330 +#: ../../../CHANGES.rst:659 msgid "" "`MessageEntity` method `get_text` was removed and `extract` was renamed " "to `extract_from` `#944 `_" msgstr "" -#: ../../../CHANGES.rst:332 +#: ../../../CHANGES.rst:661 msgid "" "Added full support of `Bot API 6.2 `_ `#975 " "`_" msgstr "" -#: ../../../CHANGES.rst:337 +#: ../../../CHANGES.rst:666 msgid "3.0.0b3 (2022-04-19)" msgstr "" -#: ../../../CHANGES.rst:342 +#: ../../../CHANGES.rst:671 msgid "" "Added possibility to get command magic result as handler argument `#889 " "`_" msgstr "" -#: ../../../CHANGES.rst:344 +#: ../../../CHANGES.rst:673 msgid "" "Added full support of `Telegram Bot API 6.0 " "`_ `#890 " "`_" msgstr "" -#: ../../../CHANGES.rst:351 +#: ../../../CHANGES.rst:680 msgid "" "Fixed I18n lazy-proxy. Disabled caching. `#839 " "`_" msgstr "" -#: ../../../CHANGES.rst:353 +#: ../../../CHANGES.rst:682 msgid "" "Added parsing of spoiler message entity `#865 " "`_" msgstr "" -#: ../../../CHANGES.rst:355 +#: ../../../CHANGES.rst:684 msgid "" "Fixed default `parse_mode` for `Message.copy_to()` method. `#876 " "`_" msgstr "" -#: ../../../CHANGES.rst:357 +#: ../../../CHANGES.rst:686 msgid "" "Fixed CallbackData factory parsing IntEnum's `#885 " "`_" msgstr "" -#: ../../../CHANGES.rst:364 +#: ../../../CHANGES.rst:693 msgid "" "Added automated check that pull-request adds a changes description to " "**CHANGES** directory `#873 " "`_" msgstr "" -#: ../../../CHANGES.rst:366 +#: ../../../CHANGES.rst:695 msgid "" "Changed :code:`Message.html_text` and :code:`Message.md_text` attributes " "behaviour when message has no text. The empty string will be used instead" @@ -842,14 +1297,14 @@ msgid "" "`_" msgstr "" -#: ../../../CHANGES.rst:369 +#: ../../../CHANGES.rst:698 msgid "" "Used `redis-py` instead of `aioredis` package in due to this packages was" " merged into single one `#882 " "`_" msgstr "" -#: ../../../CHANGES.rst:371 +#: ../../../CHANGES.rst:700 msgid "" "Solved common naming problem with middlewares that confusing too much " "developers - now you can't see the `middleware` and `middlewares` " @@ -858,113 +1313,113 @@ msgid "" "`_" msgstr "" -#: ../../../CHANGES.rst:378 +#: ../../../CHANGES.rst:707 msgid "3.0.0b2 (2022-02-19)" msgstr "" -#: ../../../CHANGES.rst:383 +#: ../../../CHANGES.rst:712 msgid "" "Added possibility to pass additional arguments into the aiohttp webhook " "handler to use this arguments inside handlers as the same as it possible " "in polling mode. `#785 `_" msgstr "" -#: ../../../CHANGES.rst:386 +#: ../../../CHANGES.rst:715 msgid "" "Added possibility to add handler flags via decorator (like `pytest.mark` " "decorator but `aiogram.flags`) `#836 " "`_" msgstr "" -#: ../../../CHANGES.rst:388 +#: ../../../CHANGES.rst:717 msgid "" "Added :code:`ChatActionSender` utility to automatically sends chat action" " while long process is running." msgstr "" -#: ../../../CHANGES.rst:390 +#: ../../../CHANGES.rst:719 msgid "" "It also can be used as message middleware and can be customized via " ":code:`chat_action` flag. `#837 " "`_" msgstr "" -#: ../../../CHANGES.rst:397 +#: ../../../CHANGES.rst:726 msgid "" "Fixed unexpected behavior of sequences in the StateFilter. `#791 " "`_" msgstr "" -#: ../../../CHANGES.rst:399 +#: ../../../CHANGES.rst:728 msgid "" "Fixed exceptions filters `#827 " "`_" msgstr "" -#: ../../../CHANGES.rst:406 +#: ../../../CHANGES.rst:735 msgid "" "Logger name for processing events is changed to :code:`aiogram.events`. " "`#830 `_" msgstr "" -#: ../../../CHANGES.rst:408 +#: ../../../CHANGES.rst:737 msgid "" "Added full support of Telegram Bot API 5.6 and 5.7 `#835 " "`_" msgstr "" -#: ../../../CHANGES.rst:410 +#: ../../../CHANGES.rst:739 msgid "" "**BREAKING** Events isolation mechanism is moved from FSM storages to " "standalone managers `#838 " "`_" msgstr "" -#: ../../../CHANGES.rst:416 +#: ../../../CHANGES.rst:745 msgid "3.0.0b1 (2021-12-12)" msgstr "" -#: ../../../CHANGES.rst:421 +#: ../../../CHANGES.rst:750 msgid "Added new custom operation for MagicFilter named :code:`as_`" msgstr "" -#: ../../../CHANGES.rst:423 +#: ../../../CHANGES.rst:752 msgid "Now you can use it to get magic filter result as handler argument" msgstr "" -#: ../../../CHANGES.rst:439 +#: ../../../CHANGES.rst:768 msgid "`#759 `_" msgstr "" -#: ../../../CHANGES.rst:445 +#: ../../../CHANGES.rst:774 msgid "" "Fixed: Missing :code:`ChatMemberHandler` import in " ":code:`aiogram/dispatcher/handler` `#751 " "`_" msgstr "" -#: ../../../CHANGES.rst:452 +#: ../../../CHANGES.rst:781 msgid "" "Check :code:`destiny` in case of no :code:`with_destiny` enabled in " "RedisStorage key builder `#776 " "`_" msgstr "" -#: ../../../CHANGES.rst:454 +#: ../../../CHANGES.rst:783 msgid "" "Added full support of `Bot API 5.5 `_ `#777 " "`_" msgstr "" -#: ../../../CHANGES.rst:456 +#: ../../../CHANGES.rst:785 msgid "" "Stop using feature from #336. From now settings of client-session should " "be placed as initializer arguments instead of changing instance " "attributes. `#778 `_" msgstr "" -#: ../../../CHANGES.rst:458 +#: ../../../CHANGES.rst:787 msgid "" "Make TelegramAPIServer files wrapper in local mode bi-directional " "(server-client, client-server) Now you can convert local path to server " @@ -972,11 +1427,11 @@ msgid "" "`_" msgstr "" -#: ../../../CHANGES.rst:464 +#: ../../../CHANGES.rst:793 msgid "3.0.0a18 (2021-11-10)" msgstr "" -#: ../../../CHANGES.rst:469 +#: ../../../CHANGES.rst:798 msgid "" "Breaking: Changed the signature of the session middlewares Breaking: " "Renamed AiohttpSession.make_request method parameter from call to method " @@ -984,258 +1439,258 @@ msgid "" "outgoing requests `#716 `_" msgstr "" -#: ../../../CHANGES.rst:473 +#: ../../../CHANGES.rst:802 msgid "" "Improved description of filters resolving error. For example when you try" " to pass wrong type of argument to the filter but don't know why filter " "is not resolved now you can get error like this:" msgstr "" -#: ../../../CHANGES.rst:483 +#: ../../../CHANGES.rst:812 msgid "`#717 `_" msgstr "" -#: ../../../CHANGES.rst:484 +#: ../../../CHANGES.rst:813 msgid "" "**Breaking internal API change** Reworked FSM Storage record keys " "propagation `#723 `_" msgstr "" -#: ../../../CHANGES.rst:487 +#: ../../../CHANGES.rst:816 msgid "" "Implemented new filter named :code:`MagicData(magic_data)` that helps to " "filter event by data from middlewares or other filters" msgstr "" -#: ../../../CHANGES.rst:489 +#: ../../../CHANGES.rst:818 msgid "" "For example your bot is running with argument named :code:`config` that " "contains the application config then you can filter event by value from " "this config:" msgstr "" -#: ../../../CHANGES.rst:495 +#: ../../../CHANGES.rst:824 msgid "`#724 `_" msgstr "" -#: ../../../CHANGES.rst:501 +#: ../../../CHANGES.rst:830 msgid "" "Fixed I18n context inside error handlers `#726 " "`_" msgstr "" -#: ../../../CHANGES.rst:503 +#: ../../../CHANGES.rst:832 msgid "" "Fixed bot session closing before emit shutdown `#734 " "`_" msgstr "" -#: ../../../CHANGES.rst:505 +#: ../../../CHANGES.rst:834 msgid "" "Fixed: bound filter resolving does not require children routers `#736 " "`_" msgstr "" -#: ../../../CHANGES.rst:512 +#: ../../../CHANGES.rst:841 msgid "" "Enabled testing on Python 3.10 Removed `async_lru` dependency (is " "incompatible with Python 3.10) and replaced usage with protected property" " `#719 `_" msgstr "" -#: ../../../CHANGES.rst:515 +#: ../../../CHANGES.rst:844 msgid "" "Converted README.md to README.rst and use it as base file for docs `#725 " "`_" msgstr "" -#: ../../../CHANGES.rst:517 +#: ../../../CHANGES.rst:846 msgid "Rework filters resolving:" msgstr "" -#: ../../../CHANGES.rst:519 +#: ../../../CHANGES.rst:848 msgid "Automatically apply Bound Filters with default values to handlers" msgstr "" -#: ../../../CHANGES.rst:520 +#: ../../../CHANGES.rst:849 msgid "Fix data transfer from parent to included routers filters" msgstr "" -#: ../../../CHANGES.rst:521 +#: ../../../CHANGES.rst:850 msgid "`#727 `_" msgstr "" -#: ../../../CHANGES.rst:522 +#: ../../../CHANGES.rst:851 msgid "" "Added full support of Bot API 5.4 https://core.telegram.org/bots/api-" "changelog#november-5-2021 `#744 " "`_" msgstr "" -#: ../../../CHANGES.rst:528 +#: ../../../CHANGES.rst:857 msgid "3.0.0a17 (2021-09-24)" msgstr "" -#: ../../../CHANGES.rst:533 +#: ../../../CHANGES.rst:862 msgid "" "Added :code:`html_text` and :code:`md_text` to Message object `#708 " "`_" msgstr "" -#: ../../../CHANGES.rst:535 +#: ../../../CHANGES.rst:864 msgid "" "Refactored I18n, added context managers for I18n engine and current " "locale `#709 `_" msgstr "" -#: ../../../CHANGES.rst:540 +#: ../../../CHANGES.rst:869 msgid "3.0.0a16 (2021-09-22)" msgstr "" -#: ../../../CHANGES.rst:545 +#: ../../../CHANGES.rst:874 msgid "Added support of local Bot API server files downloading" msgstr "" -#: ../../../CHANGES.rst:547 +#: ../../../CHANGES.rst:876 msgid "" "When Local API is enabled files can be downloaded via " "`bot.download`/`bot.download_file` methods. `#698 " "`_" msgstr "" -#: ../../../CHANGES.rst:549 +#: ../../../CHANGES.rst:878 msgid "" "Implemented I18n & L10n support `#701 " "`_" msgstr "" -#: ../../../CHANGES.rst:556 +#: ../../../CHANGES.rst:885 msgid "" "Covered by tests and docs KeyboardBuilder util `#699 " "`_" msgstr "" -#: ../../../CHANGES.rst:558 +#: ../../../CHANGES.rst:887 msgid "**Breaking!!!**. Refactored and renamed exceptions." msgstr "" -#: ../../../CHANGES.rst:560 +#: ../../../CHANGES.rst:889 msgid "" "Exceptions module was moved from :code:`aiogram.utils.exceptions` to " ":code:`aiogram.exceptions`" msgstr "" -#: ../../../CHANGES.rst:561 +#: ../../../CHANGES.rst:890 msgid "Added prefix `Telegram` for all error classes" msgstr "" -#: ../../../CHANGES.rst:562 +#: ../../../CHANGES.rst:891 msgid "`#700 `_" msgstr "" -#: ../../../CHANGES.rst:563 +#: ../../../CHANGES.rst:892 msgid "" "Replaced all :code:`pragma: no cover` marks via global " ":code:`.coveragerc` config `#702 " "`_" msgstr "" -#: ../../../CHANGES.rst:565 +#: ../../../CHANGES.rst:894 msgid "Updated dependencies." msgstr "" -#: ../../../CHANGES.rst:567 +#: ../../../CHANGES.rst:896 msgid "" "**Breaking for framework developers** Now all optional dependencies " "should be installed as extra: `poetry install -E fast -E redis -E proxy " "-E i18n -E docs` `#703 `_" msgstr "" -#: ../../../CHANGES.rst:573 +#: ../../../CHANGES.rst:902 msgid "3.0.0a15 (2021-09-10)" msgstr "" -#: ../../../CHANGES.rst:578 +#: ../../../CHANGES.rst:907 msgid "" "Ability to iterate over all states in StatesGroup. Aiogram already had in" " check for states group so this is relative feature. `#666 " "`_" msgstr "" -#: ../../../CHANGES.rst:586 +#: ../../../CHANGES.rst:915 msgid "" "Fixed incorrect type checking in the " ":class:`aiogram.utils.keyboard.KeyboardBuilder` `#674 " "`_" msgstr "" -#: ../../../CHANGES.rst:593 +#: ../../../CHANGES.rst:922 msgid "" "Disable ContentType filter by default `#668 " "`_" msgstr "" -#: ../../../CHANGES.rst:595 +#: ../../../CHANGES.rst:924 msgid "" "Moved update type detection from Dispatcher to Update object `#669 " "`_" msgstr "" -#: ../../../CHANGES.rst:597 +#: ../../../CHANGES.rst:926 msgid "" "Updated **pre-commit** config `#681 " "`_" msgstr "" -#: ../../../CHANGES.rst:599 +#: ../../../CHANGES.rst:928 msgid "" "Reworked **handlers_in_use** util. Function moved to Router as method " "**.resolve_used_update_types()** `#682 " "`_" msgstr "" -#: ../../../CHANGES.rst:604 +#: ../../../CHANGES.rst:933 msgid "3.0.0a14 (2021-08-17)" msgstr "" -#: ../../../CHANGES.rst:609 +#: ../../../CHANGES.rst:938 msgid "" "add aliases for edit/delete reply markup to Message `#662 " "`_" msgstr "" -#: ../../../CHANGES.rst:611 +#: ../../../CHANGES.rst:940 msgid "" "Reworked outer middleware chain. Prevent to call many times the outer " "middleware for each nested router `#664 " "`_" msgstr "" -#: ../../../CHANGES.rst:618 +#: ../../../CHANGES.rst:947 msgid "" "Prepare parse mode for InputMessageContent in AnswerInlineQuery method " "`#660 `_" msgstr "" -#: ../../../CHANGES.rst:625 +#: ../../../CHANGES.rst:954 msgid "" "Added integration with :code:`towncrier` `#602 " "`_" msgstr "" -#: ../../../CHANGES.rst:632 +#: ../../../CHANGES.rst:961 msgid "" "Added `.editorconfig` `#650 " "`_" msgstr "" -#: ../../../CHANGES.rst:634 +#: ../../../CHANGES.rst:963 msgid "" "Redis storage speedup globals `#651 " "`_" msgstr "" -#: ../../../CHANGES.rst:636 +#: ../../../CHANGES.rst:965 msgid "" "add allow_sending_without_reply param to Message reply aliases `#663 " "`_" @@ -2754,28 +3209,7 @@ msgstr "" msgid "0.1 (2017-06-03)" msgstr "" -#~ msgid "\\ |release| [UNRELEASED DRAFT] (2023-01-07)" -#~ msgstr "" - -#~ msgid "\\ |release| [UNRELEASED DRAFT] (2023-02-12)" -#~ msgstr "" - -#~ msgid "" -#~ ":class:`aiogram.enums.chat_action.ChatActions`, " -#~ ":class:`aiogram.enums.chat_member_status.ChatMemberStatus`, " -#~ ":class:`aiogram.enums.chat_type.ChatType`, " -#~ ":class:`aiogram.enums.content_type.ContentType`, " -#~ ":class:`aiogram.enums.dice_emoji.DiceEmoji`, " -#~ ":class:`aiogram.enums.inline_query_result_type.InlineQueryResultType`," -#~ " :class:`aiogram.enums.input_media_type.InputMediaType`, " -#~ ":class:`aiogram.enums.mask_position_point.MaskPositionPoint`, " -#~ ":class:`aiogram.enums.menu_button_type.MenuButtonType`, " -#~ ":class:`aiogram.enums.message_entity_type.MessageEntityType`, " -#~ ":class:`aiogram.enums.parse_mode.ParseMode`, " -#~ ":class:`aiogram.enums.poll_type.PollType`, " -#~ ":class:`aiogram.enums.sticker_type.StickerType`, " -#~ ":class:`aiogram.enums.topic_icon_color.TopicIconColor`, " -#~ ":class:`aiogram.enums.update_type.UpdateType`," +#~ msgid "\\ |release| [UNRELEASED DRAFT] (2023-10-08)" #~ msgstr "" #~ msgid "\\ |release| [UNRELEASED DRAFT] (2023-03-11)" diff --git a/docs/locale/uk_UA/LC_MESSAGES/contributing.po b/docs/locale/uk_UA/LC_MESSAGES/contributing.po index e71e4dda..57c134f1 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/contributing.po +++ b/docs/locale/uk_UA/LC_MESSAGES/contributing.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-02-12 00:22+0200\n" +"POT-Creation-Date: 2023-08-26 23:17+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.12.1\n" #: ../../contributing.rst:3 msgid "Contributing" @@ -78,112 +78,112 @@ msgstr "" msgid "Activate the environment" msgstr "" -#: ../../contributing.rst:38 -msgid "Linux/ macOS:" +#: ../../contributing.rst:38 ../../contributing.rst:77 +msgid "Linux / macOS:" msgstr "" #: ../../contributing.rst:44 -msgid "Windows PoweShell" +msgid "Windows cmd" msgstr "" #: ../../contributing.rst:50 -msgid "" -"To check it worked, use described command, it should show the :code:`pip`" -" location inside the isolated environment" -msgstr "" - -#: ../../contributing.rst:53 -msgid "Linux, macOS:" -msgstr "" - -#: ../../contributing.rst:59 msgid "Windows PowerShell" msgstr "" -#: ../../contributing.rst:65 +#: ../../contributing.rst:56 msgid "" -"Also make you shure you have the latest pip version in your virtual " +"To check it worked, use described command, it should show the :code:`pip`" +" version and location inside the isolated environment" +msgstr "" + +#: ../../contributing.rst:64 +msgid "" +"Also make sure you have the latest pip version in your virtual " "environment to avoid errors on next steps:" msgstr "" -#: ../../contributing.rst:74 +#: ../../contributing.rst:73 msgid "Setup project" msgstr "" -#: ../../contributing.rst:76 +#: ../../contributing.rst:75 msgid "" "After activating the environment install `aiogram` from sources and their" -" dependencies:" +" dependencies." msgstr "" -#: ../../contributing.rst:82 +#: ../../contributing.rst:83 +msgid "Windows:" +msgstr "" + +#: ../../contributing.rst:89 msgid "" "It will install :code:`aiogram` in editable mode into your virtual " "environment and all dependencies." msgstr "" -#: ../../contributing.rst:85 +#: ../../contributing.rst:92 msgid "Making changes in code" msgstr "" -#: ../../contributing.rst:87 +#: ../../contributing.rst:94 msgid "" "At this point you can make any changes in the code that you want, it can " "be any fixes, implementing new features or experimenting." msgstr "" -#: ../../contributing.rst:92 +#: ../../contributing.rst:99 msgid "Format the code (code-style)" msgstr "" -#: ../../contributing.rst:94 +#: ../../contributing.rst:101 msgid "" "Note that this project is Black-formatted, so you should follow that " "code-style, too be sure You're correctly doing this let's reformat the " "code automatically:" msgstr "" -#: ../../contributing.rst:104 +#: ../../contributing.rst:111 msgid "Run tests" msgstr "" -#: ../../contributing.rst:106 +#: ../../contributing.rst:113 msgid "All changes should be tested:" msgstr "" -#: ../../contributing.rst:112 +#: ../../contributing.rst:119 msgid "" "Also if you are doing something with Redis-storage, you will need to test" " everything works with Redis:" msgstr "" -#: ../../contributing.rst:119 +#: ../../contributing.rst:126 msgid "Docs" msgstr "" -#: ../../contributing.rst:121 +#: ../../contributing.rst:128 msgid "" "We are using `Sphinx` to render docs in different languages, all sources " "located in `docs` directory, you can change the sources and to test it " "you can start live-preview server and look what you are doing:" msgstr "" -#: ../../contributing.rst:130 +#: ../../contributing.rst:137 msgid "Docs translations" msgstr "" -#: ../../contributing.rst:132 +#: ../../contributing.rst:139 msgid "" "Translation of the documentation is very necessary and cannot be done " "without the help of the community from all over the world, so you are " "welcome to translate the documentation into different languages." msgstr "" -#: ../../contributing.rst:136 +#: ../../contributing.rst:143 msgid "Before start, let's up to date all texts:" msgstr "" -#: ../../contributing.rst:144 +#: ../../contributing.rst:151 msgid "" "Change the :code:`` in example below to the target " "language code, after that you can modify texts inside " @@ -192,120 +192,120 @@ msgid "" "example via `poedit `_." msgstr "" -#: ../../contributing.rst:149 +#: ../../contributing.rst:156 msgid "To view results:" msgstr "" -#: ../../contributing.rst:157 +#: ../../contributing.rst:164 msgid "Describe changes" msgstr "" -#: ../../contributing.rst:159 +#: ../../contributing.rst:166 msgid "" "Describe your changes in one or more sentences so that bot developers " "know what's changed in their favorite framework - create " "`..rst` file and write the description." msgstr "" -#: ../../contributing.rst:162 +#: ../../contributing.rst:169 msgid "" ":code:`` is Issue or Pull-request number, after release link to " "this issue will be published to the *Changelog* page." msgstr "" -#: ../../contributing.rst:165 +#: ../../contributing.rst:172 msgid ":code:`` is a changes category marker, it can be one of:" msgstr "" -#: ../../contributing.rst:167 +#: ../../contributing.rst:174 msgid ":code:`feature` - when you are implementing new feature" msgstr "" -#: ../../contributing.rst:168 +#: ../../contributing.rst:175 msgid ":code:`bugfix` - when you fix a bug" msgstr "" -#: ../../contributing.rst:169 +#: ../../contributing.rst:176 msgid ":code:`doc` - when you improve the docs" msgstr "" -#: ../../contributing.rst:170 +#: ../../contributing.rst:177 msgid ":code:`removal` - when you remove something from the framework" msgstr "" -#: ../../contributing.rst:171 +#: ../../contributing.rst:178 msgid "" ":code:`misc` - when changed something inside the Core or project " "configuration" msgstr "" -#: ../../contributing.rst:173 +#: ../../contributing.rst:180 msgid "" "If you have troubles with changing category feel free to ask Core-" "contributors to help with choosing it." msgstr "" -#: ../../contributing.rst:176 +#: ../../contributing.rst:183 msgid "Complete" msgstr "" -#: ../../contributing.rst:178 +#: ../../contributing.rst:185 msgid "" "After you have made all your changes, publish them to the repository and " "create a pull request as mentioned at the beginning of the article and " "wait for a review of these changes." msgstr "" -#: ../../contributing.rst:183 +#: ../../contributing.rst:190 msgid "Star on GitHub" msgstr "" -#: ../../contributing.rst:185 +#: ../../contributing.rst:192 msgid "" "You can \"star\" repository on GitHub - " "https://github.com/aiogram/aiogram (click the star button at the top " "right)" msgstr "" -#: ../../contributing.rst:187 +#: ../../contributing.rst:194 msgid "" "Adding stars makes it easier for other people to find this project and " "understand how useful it is." msgstr "" -#: ../../contributing.rst:190 +#: ../../contributing.rst:197 msgid "Guides" msgstr "" -#: ../../contributing.rst:192 +#: ../../contributing.rst:199 msgid "" "You can write guides how to develop Bots on top of aiogram and publish it" " into YouTube, Medium, GitHub Books, any Courses platform or any other " "platform that you know." msgstr "" -#: ../../contributing.rst:195 +#: ../../contributing.rst:202 msgid "" "This will help more people learn about the framework and learn how to use" " it" msgstr "" -#: ../../contributing.rst:199 +#: ../../contributing.rst:206 msgid "Take answers" msgstr "" -#: ../../contributing.rst:201 +#: ../../contributing.rst:208 msgid "" "The developers is always asks for any question in our chats or any other " "platforms like GitHub Discussions, StackOverflow and others, feel free to" " answer to this questions." msgstr "" -#: ../../contributing.rst:205 +#: ../../contributing.rst:212 msgid "Funding" msgstr "" -#: ../../contributing.rst:207 +#: ../../contributing.rst:214 msgid "" "The development of the project is free and not financed by commercial " "organizations, it is my personal initiative (`@JRootJunior " @@ -313,11 +313,9 @@ msgid "" "project in my free time." msgstr "" -#: ../../contributing.rst:211 +#: ../../contributing.rst:218 msgid "" "So, if you want to financially support the project, or, for example, give" " me a pizza or a beer, you can do it on `OpenCollective " -"`_ or `Patreon " -"`_." +"`_." msgstr "" - diff --git a/docs/locale/en/LC_MESSAGES/utils/index.po b/docs/locale/uk_UA/LC_MESSAGES/deployment/index.po similarity index 68% rename from docs/locale/en/LC_MESSAGES/utils/index.po rename to docs/locale/uk_UA/LC_MESSAGES/deployment/index.po index 2ed18085..e5fe6ce8 100644 --- a/docs/locale/en/LC_MESSAGES/utils/index.po +++ b/docs/locale/uk_UA/LC_MESSAGES/deployment/index.po @@ -1,22 +1,22 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team +# Copyright (C) 2023, aiogram Team # This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. +# FIRST AUTHOR , 2023. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" +"POT-Creation-Date: 2023-08-06 16:52+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" -#: ../../utils/index.rst:3 -msgid "Utils" +#: ../../deployment/index.rst:3 +msgid "Deployment" msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/dispatcher/class_based_handlers/base.po b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/class_based_handlers/base.po index 40d8b4f5..632ef480 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/dispatcher/class_based_handlers/base.po +++ b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/class_based_handlers/base.po @@ -5,17 +5,16 @@ # msgid "" msgstr "" -"Project-Id-Version: aiogram\n" +"Project-Id-Version: aiogram\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" +"POT-Creation-Date: 2023-10-29 02:16+0300\n" "PO-Revision-Date: 2022-12-11 22:34+0200\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.1\n" #: ../../dispatcher/class_based_handlers/base.rst:5 msgid "BaseHandler" @@ -30,7 +29,8 @@ msgstr "" "використовуватися в усіх інших обробниках на основі класу." #: ../../dispatcher/class_based_handlers/base.rst:9 -msgid "Import: :code:`from aiogram.handler import BaseHandler`" +#, fuzzy +msgid "Import: :code:`from aiogram.handlers import BaseHandler`" msgstr "Import: :code:`from aiogram.handler import BaseHandler`" #: ../../dispatcher/class_based_handlers/base.rst:11 @@ -42,21 +42,23 @@ msgstr "" "def handle(self) -> Any: ...`" #: ../../dispatcher/class_based_handlers/base.rst:13 +#, fuzzy msgid "" -"This class is also have an default initializer and you don't need to " -"change it. Initializer accepts current event and all contextual data and " +"This class also has a default initializer and you don't need to change " +"it. The initializer accepts the incoming event and all contextual data, " "which can be accessed from the handler through attributes: :code:`event: " "TelegramEvent` and :code:`data: Dict[Any, str]`" msgstr "" -"Цей клас також має ініціалізатор за замовчуванням, і вам не потрібно " -"його змінювати. Ініціалізатор приймає поточну подію та всі контекстні " -"дані, доступ до яких можна отримати з обробника через атрибути: :code:" -"`event: TelegramEvent` and :code:`data: Dict[Any, str]`" +"Цей клас також має ініціалізатор за замовчуванням, і вам не потрібно його" +" змінювати. Ініціалізатор приймає поточну подію та всі контекстні дані, " +"доступ до яких можна отримати з обробника через атрибути: :code:`event: " +"TelegramEvent` and :code:`data: Dict[Any, str]`" #: ../../dispatcher/class_based_handlers/base.rst:17 +#, fuzzy msgid "" -"If instance of the bot is specified in context data or current context " -"it can be accessed through *bot* class attribute." +"If an instance of the bot is specified in context data or current context" +" it can be accessed through *bot* class attribute." msgstr "" "Якщо екземпляр бота вказано в контекстних даних або поточному контексті, " "до нього можна отримати доступ через атрибут класу *bot*." diff --git a/docs/locale/uk_UA/LC_MESSAGES/dispatcher/class_based_handlers/message.po b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/class_based_handlers/message.po index 0b0feb84..bae24729 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/dispatcher/class_based_handlers/message.po +++ b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/class_based_handlers/message.po @@ -5,17 +5,16 @@ # msgid "" msgstr "" -"Project-Id-Version: aiogram\n" +"Project-Id-Version: aiogram\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" +"POT-Creation-Date: 2023-10-08 19:04+0300\n" "PO-Revision-Date: 2022-12-11 22:52+0200\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.12.1\n" #: ../../dispatcher/class_based_handlers/message.rst:3 msgid "MessageHandler" @@ -34,12 +33,13 @@ msgid "Extension" msgstr "Розширення" #: ../../dispatcher/class_based_handlers/message.rst:24 +#, fuzzy msgid "" -"This base handler is subclass of [BaseHandler](basics.md#basehandler) " +"This base handler is subclass of :ref:`BaseHandler ` " "with some extensions:" msgstr "" -"Цей базовий обробник є підкласом [BaseHandler](basics.md#basehandler) " -"з деякими розширеннями:" +"Цей базовий обробник є підкласом [BaseHandler](basics.md#basehandler) з " +"деякими розширеннями:" #: ../../dispatcher/class_based_handlers/message.rst:26 msgid ":code:`self.chat` is alias for :code:`self.event.chat`" @@ -47,5 +47,4 @@ msgstr ":code:`self.chat` це псевдонім для :code:`self.event.chat` #: ../../dispatcher/class_based_handlers/message.rst:27 msgid ":code:`self.from_user` is alias for :code:`self.event.from_user`" -msgstr "" -":code:`self.from_user` це псевдонім для :code:`self.event.from_user`" +msgstr ":code:`self.from_user` це псевдонім для :code:`self.event.from_user`" diff --git a/docs/locale/uk_UA/LC_MESSAGES/dispatcher/dependency_injection.po b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/dependency_injection.po new file mode 100644 index 00000000..b3e158d8 --- /dev/null +++ b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/dependency_injection.po @@ -0,0 +1,96 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2023, aiogram Team +# This file is distributed under the same license as the aiogram package. +# FIRST AUTHOR , 2023. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: aiogram \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-08-26 23:17+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.12.1\n" + +#: ../../dispatcher/dependency_injection.rst:3 +msgid "Dependency injection" +msgstr "" + +#: ../../dispatcher/dependency_injection.rst:5 +msgid "" +"Dependency injection is a programming technique that makes a class " +"independent of its dependencies. It achieves that by decoupling the usage" +" of an object from its creation. This helps you to follow `SOLID's " +"`_ dependency inversion and single " +"responsibility principles." +msgstr "" + +#: ../../dispatcher/dependency_injection.rst:12 +msgid "How it works in aiogram" +msgstr "" + +#: ../../dispatcher/dependency_injection.rst:14 +msgid "" +"For each update :class:`aiogram.dispatcher.dispatcher.Dispatcher` passes " +"handling context data. Filters and middleware can also make changes to " +"the context." +msgstr "" + +#: ../../dispatcher/dependency_injection.rst:17 +msgid "" +"To access contextual data you should specify corresponding keyword " +"parameter in handler or filter. For example, to get " +":class:`aiogram.fsm.context.FSMContext` we do it like that:" +msgstr "" + +#: ../../dispatcher/dependency_injection.rst:30 +msgid "Injecting own dependencies" +msgstr "" + +#: ../../dispatcher/dependency_injection.rst:32 +msgid "Aiogram provides several ways to complement / modify contextual data." +msgstr "" + +#: ../../dispatcher/dependency_injection.rst:34 +msgid "" +"The first and easiest way is to simply specify the named arguments in " +":class:`aiogram.dispatcher.dispatcher.Dispatcher` initialization, polling" +" start methods or " +":class:`aiogram.webhook.aiohttp_server.SimpleRequestHandler` " +"initialization if you use webhooks." +msgstr "" + +#: ../../dispatcher/dependency_injection.rst:46 +msgid "Analogy for webhook:" +msgstr "" + +#: ../../dispatcher/dependency_injection.rst:55 +msgid "" +":class:`aiogram.dispatcher.dispatcher.Dispatcher`'s workflow data also " +"can be supplemented by setting values as in a dictionary:" +msgstr "" + +#: ../../dispatcher/dependency_injection.rst:63 +msgid "" +"The middlewares updates the context quite often. You can read more about " +"them on this page:" +msgstr "" + +#: ../../dispatcher/dependency_injection.rst:66 +msgid ":ref:`Middlewares `" +msgstr "" + +#: ../../dispatcher/dependency_injection.rst:68 +msgid "The last way is to return a dictionary from the filter:" +msgstr "" + +#: ../../dispatcher/dependency_injection.rst:72 +msgid "" +"...or using :ref:`MagicFilter ` with :code:`.as_(...)` " +"method." +msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/dispatcher/dispatcher.po b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/dispatcher.po index b650ce7e..0ac63832 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/dispatcher/dispatcher.po +++ b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/dispatcher.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: aiogram\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-01 20:49+0300\n" +"POT-Creation-Date: 2023-09-14 17:21+0300\n" "PO-Revision-Date: 2022-12-10 19:44+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -30,20 +30,22 @@ msgstr "" "інших маршрутизаторів до диспетчера." #: ../../dispatcher/dispatcher.rst:7 +#, fuzzy msgid "" "Here is only listed base information about Dispatcher. All about writing " -"handlers, filters and etc. you can found in next pages:" +"handlers, filters and etc. you can find in next pages:" msgstr "" "Тут наведена лише базова інформація про диспетчер. Усе про написання " "обробників, фільтрів і т.п. ви можете знайти на наступних сторінках:" #: ../../dispatcher/dispatcher.rst:9 -msgid "`Router `__" +#, fuzzy +msgid ":ref:`Router `" msgstr "`Router `__" #: ../../dispatcher/dispatcher.rst:10 -msgid "`Observer `__" -msgstr "`Observer `__" +msgid ":ref:`Filtering events`" +msgstr "" #: aiogram.dispatcher.dispatcher.Dispatcher:1 #: aiogram.dispatcher.dispatcher.Dispatcher.__init__:1 of @@ -101,8 +103,7 @@ msgstr "" msgid "Run many bots with polling" msgstr "Запуск кількох ботів з опитуванням" -#: aiogram.dispatcher.dispatcher.Dispatcher.run_polling:3 -#: aiogram.dispatcher.dispatcher.Dispatcher.start_polling:3 of +#: aiogram.dispatcher.dispatcher.Dispatcher.run_polling:3 of #, fuzzy msgid "Bot instances (one or mre)" msgstr "Екземпляри ботів" @@ -122,32 +123,28 @@ msgstr "Запуск обробки без очікування результа msgid "backoff-retry config" msgstr "" -#: aiogram.dispatcher.dispatcher.Dispatcher.run_polling:7 -#: aiogram.dispatcher.dispatcher.Dispatcher.start_polling:7 of +#: aiogram.dispatcher.dispatcher.Dispatcher.run_polling:7 of msgid "List of the update types you want your bot to receive" msgstr "Список типів подій, які має опрацьовувати ваш бот" -#: aiogram.dispatcher.dispatcher.Dispatcher.run_polling:8 of -msgid "auto resolve update types from handlers" -msgstr "" - -#: aiogram.dispatcher.dispatcher.Dispatcher.run_polling:9 +#: aiogram.dispatcher.dispatcher.Dispatcher.run_polling:8 #: aiogram.dispatcher.dispatcher.Dispatcher.start_polling:9 of msgid "handle signals (SIGINT/SIGTERM)" msgstr "" -#: aiogram.dispatcher.dispatcher.Dispatcher.run_polling:10 +#: aiogram.dispatcher.dispatcher.Dispatcher.run_polling:9 #: aiogram.dispatcher.dispatcher.Dispatcher.start_polling:10 of msgid "close bot sessions on shutdown" msgstr "" -#: aiogram.dispatcher.dispatcher.Dispatcher.run_polling:11 +#: aiogram.dispatcher.dispatcher.Dispatcher.run_polling:10 #: aiogram.dispatcher.dispatcher.Dispatcher.start_polling:11 of msgid "contextual data" msgstr "контекстні дані" #: aiogram.dispatcher.dispatcher.Dispatcher.run_polling -#: aiogram.dispatcher.dispatcher.Dispatcher.start_polling of +#: aiogram.dispatcher.dispatcher.Dispatcher.start_polling +#: aiogram.dispatcher.dispatcher.Dispatcher.stop_polling of msgid "Returns" msgstr "Повертає" @@ -155,8 +152,18 @@ msgstr "Повертає" msgid "Polling runner" msgstr "Запуск кількох ботів з опитуванням (асинхронно)" -#: aiogram.dispatcher.dispatcher.Dispatcher.start_polling:8 of -msgid "automatically resolve used update types in handlers" +#: aiogram.dispatcher.dispatcher.Dispatcher.start_polling:3 of +msgid "Bot instances (one or more)" +msgstr "Екземпляри ботів" + +#: aiogram.dispatcher.dispatcher.Dispatcher.start_polling:7 of +msgid "" +"List of the update types you want your bot to receive By default, all " +"used update types are enabled (resolved from handlers)" +msgstr "" + +#: aiogram.dispatcher.dispatcher.Dispatcher.stop_polling:1 of +msgid "Execute this method if you want to stop polling programmatically" msgstr "" #: ../../dispatcher/dispatcher.rst:18 @@ -183,6 +190,3 @@ msgstr "" "Усі оновлення можна передати диспетчеру через " ":obj:`Dispatcher.feed_update(bot=..., update=...)` method:" -#~ msgid "Poling timeout" -#~ msgstr "Час очікування на відповідь" - diff --git a/docs/locale/uk_UA/LC_MESSAGES/dispatcher/errors.po b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/errors.po new file mode 100644 index 00000000..d9f28e0a --- /dev/null +++ b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/errors.po @@ -0,0 +1,159 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2023, aiogram Team +# This file is distributed under the same license as the aiogram package. +# FIRST AUTHOR , 2023. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: aiogram \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.12.1\n" + +#: ../../dispatcher/errors.rst:3 +msgid "Errors" +msgstr "" + +#: ../../dispatcher/errors.rst:7 +msgid "Handling errors" +msgstr "" + +#: ../../dispatcher/errors.rst:9 +msgid "" +"Is recommended way that you should use errors inside handlers using try-" +"except block, but in common cases you can use global errors handler at " +"router or dispatcher level." +msgstr "" + +#: ../../dispatcher/errors.rst:12 +msgid "" +"If you specify errors handler for router - it will be used for all " +"handlers inside this router." +msgstr "" + +#: ../../dispatcher/errors.rst:14 +msgid "" +"If you specify errors handler for dispatcher - it will be used for all " +"handlers inside all routers." +msgstr "" + +#: ../../dispatcher/errors.rst:34 +msgid "ErrorEvent" +msgstr "" + +#: aiogram.types.error_event.ErrorEvent:1 of +msgid "" +"Internal event, should be used to receive errors while processing Updates" +" from Telegram" +msgstr "" + +#: aiogram.types.error_event.ErrorEvent:3 of +msgid "Source: https://core.telegram.org/bots/api#error-event" +msgstr "" + +#: ../../docstring aiogram.types.error_event.ErrorEvent.update:1 of +msgid "Received update" +msgstr "" + +#: ../../docstring aiogram.types.error_event.ErrorEvent.exception:1 of +msgid "Exception" +msgstr "" + +#: ../../dispatcher/errors.rst:45 +msgid "Error types" +msgstr "" + +#: aiogram.exceptions.AiogramError:1 of +msgid "Base exception for all aiogram errors." +msgstr "" + +#: aiogram.exceptions.DetailedAiogramError:1 of +msgid "Base exception for all aiogram errors with detailed message." +msgstr "" + +#: aiogram.exceptions.CallbackAnswerException:1 of +msgid "Exception for callback answer." +msgstr "" + +#: aiogram.exceptions.UnsupportedKeywordArgument:1 of +msgid "Exception raised when a keyword argument is passed as filter." +msgstr "" + +#: aiogram.exceptions.TelegramAPIError:1 of +msgid "Base exception for all Telegram API errors." +msgstr "" + +#: aiogram.exceptions.TelegramNetworkError:1 of +msgid "Base exception for all Telegram network errors." +msgstr "" + +#: aiogram.exceptions.TelegramRetryAfter:1 of +msgid "Exception raised when flood control exceeds." +msgstr "" + +#: aiogram.exceptions.TelegramMigrateToChat:1 of +msgid "Exception raised when chat has been migrated to a supergroup." +msgstr "" + +#: aiogram.exceptions.TelegramBadRequest:1 of +msgid "Exception raised when request is malformed." +msgstr "" + +#: aiogram.exceptions.TelegramNotFound:1 of +msgid "Exception raised when chat, message, user, etc. not found." +msgstr "" + +#: aiogram.exceptions.TelegramConflictError:1 of +msgid "" +"Exception raised when bot token is already used by another application in" +" polling mode." +msgstr "" + +#: aiogram.exceptions.TelegramUnauthorizedError:1 of +msgid "Exception raised when bot token is invalid." +msgstr "" + +#: aiogram.exceptions.TelegramForbiddenError:1 of +msgid "Exception raised when bot is kicked from chat or etc." +msgstr "" + +#: aiogram.exceptions.TelegramServerError:1 of +msgid "Exception raised when Telegram server returns 5xx error." +msgstr "" + +#: aiogram.exceptions.RestartingTelegram:1 of +msgid "Exception raised when Telegram server is restarting." +msgstr "" + +#: aiogram.exceptions.RestartingTelegram:3 of +msgid "" +"It seems like this error is not used by Telegram anymore, but it's still " +"here for backward compatibility." +msgstr "" + +#: aiogram.exceptions.RestartingTelegram:6 of +msgid "" +"Currently, you should expect that Telegram can raise RetryAfter (with " +"timeout 5 seconds)" +msgstr "" + +#: aiogram.exceptions.RestartingTelegram:7 of +msgid "error instead of this one." +msgstr "" + +#: aiogram.exceptions.TelegramEntityTooLarge:1 of +msgid "Exception raised when you are trying to send a file that is too large." +msgstr "" + +#: aiogram.exceptions.ClientDecodeError:1 of +msgid "" +"Exception raised when client can't decode response. (Malformed response, " +"etc.)" +msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/dispatcher/filters/chat_member_updated.po b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/filters/chat_member_updated.po index 6f6d5248..6b144595 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/dispatcher/filters/chat_member_updated.po +++ b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/filters/chat_member_updated.po @@ -5,23 +5,42 @@ # msgid "" msgstr "" -"Project-Id-Version: aiogram\n" +"Project-Id-Version: aiogram\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" +"POT-Creation-Date: 2023-08-26 23:17+0300\n" "PO-Revision-Date: 2022-10-25 18:00+0300\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.1.1\n" +"Generated-By: Babel 2.12.1\n" #: ../../dispatcher/filters/chat_member_updated.rst:3 msgid "ChatMemberUpdated" msgstr "Зміна статусу користувача в чаті" -#: ../../dispatcher/filters/chat_member_updated.rst:10 +#: ../../dispatcher/filters/chat_member_updated.rst:6 +msgid "Usage" +msgstr "Використання" + +#: ../../dispatcher/filters/chat_member_updated.rst:8 +msgid "Handle user leave or join events" +msgstr "Керуйте подіями, які залишають користувачів або приєднуються" + +#: ../../dispatcher/filters/chat_member_updated.rst:20 +msgid "" +"Or construct your own terms via using pre-defined set of statuses and " +"transitions." +msgstr "" +"Або створіть власні умови, використовуючи попередньо визначений набір " +"статусів і переходів." + +#: ../../dispatcher/filters/chat_member_updated.rst:24 +msgid "Explanation" +msgstr "" + +#: ../../dispatcher/filters/chat_member_updated.rst:31 msgid "" "You can import from :code:`aiogram.filters` all available variants of " "`statuses`_, `status groups`_ or `transitions`_:" @@ -29,98 +48,98 @@ msgstr "" "Ви можете імпортувати з :code:`aiogram.filters` усі доступні варіанти " "`statuses`_, `status group`_ або `transitions`_:" -#: ../../dispatcher/filters/chat_member_updated.rst:14 +#: ../../dispatcher/filters/chat_member_updated.rst:35 msgid "Statuses" msgstr "Статуси" -#: ../../dispatcher/filters/chat_member_updated.rst:17 -#: ../../dispatcher/filters/chat_member_updated.rst:42 -#: ../../dispatcher/filters/chat_member_updated.rst:62 +#: ../../dispatcher/filters/chat_member_updated.rst:38 +#: ../../dispatcher/filters/chat_member_updated.rst:63 +#: ../../dispatcher/filters/chat_member_updated.rst:83 msgid "name" msgstr "ім'я" -#: ../../dispatcher/filters/chat_member_updated.rst:17 -#: ../../dispatcher/filters/chat_member_updated.rst:42 -#: ../../dispatcher/filters/chat_member_updated.rst:62 +#: ../../dispatcher/filters/chat_member_updated.rst:38 +#: ../../dispatcher/filters/chat_member_updated.rst:63 +#: ../../dispatcher/filters/chat_member_updated.rst:83 msgid "Description" msgstr "Опис" -#: ../../dispatcher/filters/chat_member_updated.rst:19 +#: ../../dispatcher/filters/chat_member_updated.rst:40 msgid ":code:`CREATOR`" msgstr ":code:`CREATOR`" -#: ../../dispatcher/filters/chat_member_updated.rst:19 +#: ../../dispatcher/filters/chat_member_updated.rst:40 msgid "Chat owner" msgstr "Власник чату" -#: ../../dispatcher/filters/chat_member_updated.rst:21 +#: ../../dispatcher/filters/chat_member_updated.rst:42 msgid ":code:`ADMINISTRATOR`" msgstr ":code:`ADMINISTRATOR`" -#: ../../dispatcher/filters/chat_member_updated.rst:21 +#: ../../dispatcher/filters/chat_member_updated.rst:42 msgid "Chat administrator" msgstr "Адміністратор чату" -#: ../../dispatcher/filters/chat_member_updated.rst:23 +#: ../../dispatcher/filters/chat_member_updated.rst:44 msgid ":code:`MEMBER`" msgstr ":code:`MEMBER`" -#: ../../dispatcher/filters/chat_member_updated.rst:23 +#: ../../dispatcher/filters/chat_member_updated.rst:44 msgid "Member of the chat" msgstr "Учасник чату" -#: ../../dispatcher/filters/chat_member_updated.rst:25 +#: ../../dispatcher/filters/chat_member_updated.rst:46 msgid ":code:`RESTRICTED`" msgstr ":code:`RESTRICTED`" -#: ../../dispatcher/filters/chat_member_updated.rst:25 +#: ../../dispatcher/filters/chat_member_updated.rst:46 msgid "Restricted user (can be not member)" msgstr "Обмежений користувач (може бути не учасником)" -#: ../../dispatcher/filters/chat_member_updated.rst:27 +#: ../../dispatcher/filters/chat_member_updated.rst:48 msgid ":code:`LEFT`" msgstr ":code:`LEFT`" -#: ../../dispatcher/filters/chat_member_updated.rst:27 +#: ../../dispatcher/filters/chat_member_updated.rst:48 msgid "Isn't member of the chat" msgstr "Не є учасником чату" -#: ../../dispatcher/filters/chat_member_updated.rst:29 +#: ../../dispatcher/filters/chat_member_updated.rst:50 msgid ":code:`KICKED`" msgstr ":code:`KICKED`" -#: ../../dispatcher/filters/chat_member_updated.rst:29 +#: ../../dispatcher/filters/chat_member_updated.rst:50 msgid "Kicked member by administrators" msgstr "Вигнанийадміністраторами учасник" -#: ../../dispatcher/filters/chat_member_updated.rst:32 +#: ../../dispatcher/filters/chat_member_updated.rst:53 msgid "" -"Statuses can be extended with `is_member` flag by prefixing with :code:`" -"+` (for :code:`is_member == True)` or :code:`-` (for :code:`is_member == " -"False`) symbol, like :code:`+RESTRICTED` or :code:`-RESTRICTED`" +"Statuses can be extended with `is_member` flag by prefixing with " +":code:`+` (for :code:`is_member == True)` or :code:`-` (for " +":code:`is_member == False`) symbol, like :code:`+RESTRICTED` or " +":code:`-RESTRICTED`" msgstr "" -"Статуси можна розширити маркером `is_member`, додавши префікс :" -"code:`+` (для :code:`is_member == True)` або :code:`-` (для :code:" -"`is_member == False`) , наприклад :code:`+RESTRICTED` або :code:`-" -"RESTRICTED`" +"Статуси можна розширити маркером `is_member`, додавши префікс :code:`+` " +"(для :code:`is_member == True)` або :code:`-` (для :code:`is_member == " +"False`) , наприклад :code:`+RESTRICTED` або :code:`-RESTRICTED`" -#: ../../dispatcher/filters/chat_member_updated.rst:37 +#: ../../dispatcher/filters/chat_member_updated.rst:58 msgid "Status groups" msgstr "Групи статусів" -#: ../../dispatcher/filters/chat_member_updated.rst:39 +#: ../../dispatcher/filters/chat_member_updated.rst:60 msgid "" "The particular statuses can be combined via bitwise :code:`or` operator, " "like :code:`CREATOR | ADMINISTRATOR`" msgstr "" -"Окремі статуси можна комбінувати за допомогою побітового оператора :code:" -"`or`, наприклад :code:`CREATOR | ADMINISTRATOR`" +"Окремі статуси можна комбінувати за допомогою побітового оператора " +":code:`or`, наприклад :code:`CREATOR | ADMINISTRATOR`" -#: ../../dispatcher/filters/chat_member_updated.rst:44 +#: ../../dispatcher/filters/chat_member_updated.rst:65 msgid ":code:`IS_MEMBER`" msgstr ":code:`IS_MEMBER`" -#: ../../dispatcher/filters/chat_member_updated.rst:44 +#: ../../dispatcher/filters/chat_member_updated.rst:65 msgid "" "Combination of :code:`(CREATOR | ADMINISTRATOR | MEMBER | +RESTRICTED)` " "statuses." @@ -128,41 +147,41 @@ msgstr "" "Комбінація статусів :code:`(CREATOR | ADMINISTRATOR | MEMBER | " "+RESTRICTED)`." -#: ../../dispatcher/filters/chat_member_updated.rst:46 +#: ../../dispatcher/filters/chat_member_updated.rst:67 msgid ":code:`IS_ADMIN`" msgstr ":code:`IS_ADMIN`" -#: ../../dispatcher/filters/chat_member_updated.rst:46 +#: ../../dispatcher/filters/chat_member_updated.rst:67 msgid "Combination of :code:`(CREATOR | ADMINISTRATOR)` statuses." msgstr "Комбінація статусів :code:`(CREATOR | ADMINISTRATOR)`." -#: ../../dispatcher/filters/chat_member_updated.rst:48 +#: ../../dispatcher/filters/chat_member_updated.rst:69 msgid ":code:`IS_NOT_MEMBER`" msgstr ":code:`IS_NOT_MEMBER`" -#: ../../dispatcher/filters/chat_member_updated.rst:48 +#: ../../dispatcher/filters/chat_member_updated.rst:69 msgid "Combination of :code:`(LEFT | KICKED | -RESTRICTED)` statuses." msgstr "Комбінація статусів :code:`(LEFT | KICKED | -RESTRICTED)` ." -#: ../../dispatcher/filters/chat_member_updated.rst:52 +#: ../../dispatcher/filters/chat_member_updated.rst:73 msgid "Transitions" msgstr "Переходи" -#: ../../dispatcher/filters/chat_member_updated.rst:54 +#: ../../dispatcher/filters/chat_member_updated.rst:75 msgid "" -"Transitions can be defined via bitwise shift operators :code:`>>` and :" -"code:`<<`. Old chat member status should be defined in the left side " -"for :code:`>>` operator (right side for :code:`<<`) and new status " -"should be specified on the right side for :code:`>>` operator (left side " -"for :code:`<<`)" +"Transitions can be defined via bitwise shift operators :code:`>>` and " +":code:`<<`. Old chat member status should be defined in the left side for" +" :code:`>>` operator (right side for :code:`<<`) and new status should be" +" specified on the right side for :code:`>>` operator (left side for " +":code:`<<`)" msgstr "" -"Переходи можна визначити за допомогою операторів порозрядного зсуву :" -"code:`>>` і :code:`<<`. Старий статус учасника чату має бути визначений " +"Переходи можна визначити за допомогою операторів порозрядного зсуву " +":code:`>>` і :code:`<<`. Старий статус учасника чату має бути визначений " "ліворуч для оператора :code:`>>` (праворуч для :code:`<<`), а новий " -"статус має бути вказаний праворуч для :code:`>>` оператор (ліворуч для :" -"code:`<<`)" +"статус має бути вказаний праворуч для :code:`>>` оператор (ліворуч для " +":code:`<<`)" -#: ../../dispatcher/filters/chat_member_updated.rst:58 +#: ../../dispatcher/filters/chat_member_updated.rst:79 msgid "" "The direction of transition can be changed via bitwise inversion " "operator: :code:`~JOIN_TRANSITION` will produce swap of old and new " @@ -172,45 +191,45 @@ msgstr "" "інверсії: :code:`~JOIN_TRANSITION` призведе до обміну старих і нових " "статусів." -#: ../../dispatcher/filters/chat_member_updated.rst:64 +#: ../../dispatcher/filters/chat_member_updated.rst:85 msgid ":code:`JOIN_TRANSITION`" msgstr ":code:`JOIN_TRANSITION`" -#: ../../dispatcher/filters/chat_member_updated.rst:64 +#: ../../dispatcher/filters/chat_member_updated.rst:85 msgid "" -"Means status changed from :code:`IS_NOT_MEMBER` to :code:`IS_MEMBER` (:" -"code:`IS_NOT_MEMBER >> IS_MEMBER`)" +"Means status changed from :code:`IS_NOT_MEMBER` to :code:`IS_MEMBER` " +"(:code:`IS_NOT_MEMBER >> IS_MEMBER`)" msgstr "" "Означає, що статус змінено з :code:`IS_NOT_MEMBER` на :code:`IS_MEMBER` " "(:code:`IS_NOT_MEMBER >> IS_MEMBER`)" -#: ../../dispatcher/filters/chat_member_updated.rst:67 +#: ../../dispatcher/filters/chat_member_updated.rst:88 msgid ":code:`LEAVE_TRANSITION`" msgstr ":code:`LEAVE_TRANSITION`" -#: ../../dispatcher/filters/chat_member_updated.rst:67 +#: ../../dispatcher/filters/chat_member_updated.rst:88 msgid "" -"Means status changed from :code:`IS_MEMBER` to :code:`IS_NOT_MEMBER` (:" -"code:`~JOIN_TRANSITION`)" +"Means status changed from :code:`IS_MEMBER` to :code:`IS_NOT_MEMBER` " +"(:code:`~JOIN_TRANSITION`)" msgstr "" "Означає, що статус змінено з :code:`IS_MEMBER` на :code:`IS_NOT_MEMBER` " "(:code:`~JOIN_TRANSITION`)" -#: ../../dispatcher/filters/chat_member_updated.rst:70 +#: ../../dispatcher/filters/chat_member_updated.rst:91 msgid ":code:`PROMOTED_TRANSITION`" msgstr ":code:`PROMOTED_TRANSITION`" -#: ../../dispatcher/filters/chat_member_updated.rst:70 +#: ../../dispatcher/filters/chat_member_updated.rst:91 msgid "" -"Means status changed from :code:`(MEMBER | RESTRICTED | LEFT | KICKED) " -">> ADMINISTRATOR` (:code:`(MEMBER | RESTRICTED | LEFT | KICKED) >> " +"Means status changed from :code:`(MEMBER | RESTRICTED | LEFT | KICKED) >>" +" ADMINISTRATOR` (:code:`(MEMBER | RESTRICTED | LEFT | KICKED) >> " "ADMINISTRATOR`)" msgstr "" -"Означає, що статус змінено з :code:`(MEMBER | RESTRICTED | LEFT | " -"KICKED) >> ADMINISTRATOR` (:code:`(MEMBER | RESTRICTED | LEFT | KICKED) " -">> ADMINISTRATOR`)" +"Означає, що статус змінено з :code:`(MEMBER | RESTRICTED | LEFT | KICKED)" +" >> ADMINISTRATOR` (:code:`(MEMBER | RESTRICTED | LEFT | KICKED) >> " +"ADMINISTRATOR`)" -#: ../../dispatcher/filters/chat_member_updated.rst:77 +#: ../../dispatcher/filters/chat_member_updated.rst:98 msgid "" "Note that if you define the status unions (via :code:`|`) you will need " "to add brackets for the statement before use shift operator in due to " @@ -220,34 +239,18 @@ msgstr "" "вам потрібно буде додати дужки для оператора перед використанням " "оператора зсуву через пріоритети оператора." -#: ../../dispatcher/filters/chat_member_updated.rst:81 -msgid "Usage" -msgstr "Використання" - -#: ../../dispatcher/filters/chat_member_updated.rst:83 -msgid "Handle user leave or join events" -msgstr "Керуйте подіями, які залишають користувачів або приєднуються" - -#: ../../dispatcher/filters/chat_member_updated.rst:95 -msgid "" -"Or construct your own terms via using pre-defined set of statuses and " -"transitions." -msgstr "" -"Або створіть власні умови, використовуючи попередньо визначений набір " -"статусів і переходів." - -#: ../../dispatcher/filters/chat_member_updated.rst:98 +#: ../../dispatcher/filters/chat_member_updated.rst:103 msgid "Allowed handlers" msgstr "Дозволені обробники" -#: ../../dispatcher/filters/chat_member_updated.rst:100 +#: ../../dispatcher/filters/chat_member_updated.rst:105 msgid "Allowed update types for this filter:" msgstr "Дозволені типи оновлень для цього фільтра:" -#: ../../dispatcher/filters/chat_member_updated.rst:102 +#: ../../dispatcher/filters/chat_member_updated.rst:107 msgid "`my_chat_member`" msgstr "`my_chat_member`" -#: ../../dispatcher/filters/chat_member_updated.rst:103 +#: ../../dispatcher/filters/chat_member_updated.rst:108 msgid "`chat_member`" msgstr "`chat_member`" diff --git a/docs/locale/uk_UA/LC_MESSAGES/dispatcher/filters/index.po b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/filters/index.po index efde70b7..a19bb7a1 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/dispatcher/filters/index.po +++ b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/filters/index.po @@ -5,100 +5,103 @@ # msgid "" msgstr "" -"Project-Id-Version: aiogram\n" +"Project-Id-Version: aiogram\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-18 01:50+0300\n" +"POT-Creation-Date: 2023-09-14 17:21+0300\n" "PO-Revision-Date: 2022-10-25 15:53+0300\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.1.1\n" +"Generated-By: Babel 2.12.1\n" -#: ../../dispatcher/filters/index.rst:3 +#: ../../dispatcher/filters/index.rst:5 msgid "Filtering events" msgstr "Фільтрування подій" -#: ../../dispatcher/filters/index.rst:5 +#: ../../dispatcher/filters/index.rst:7 +#, fuzzy msgid "" -"Filters is needed for routing updates to the specific handler. Searching of " -"handler is always stops on first match set of filters are pass." +"Filters is needed for routing updates to the specific handler. Searching " +"of handler is always stops on first match set of filters are pass. By " +"default, all handlers has empty set of filters, so all updates will be " +"passed to first handler that has empty set of filters." msgstr "" "Фільтри потрібні для маршрутизації оновлень до конкретного обробника " -"(handler) . Пошук обробника (handler) завжди зупиняється після першого збігу " -"набору фільтрів." - -#: ../../dispatcher/filters/index.rst:8 -msgid "*aiogram* has some builtin useful filters." -msgstr "*aiogram* має декілька вбудованих корисних фільтрів." +"(handler) . Пошук обробника (handler) завжди зупиняється після першого " +"збігу набору фільтрів." #: ../../dispatcher/filters/index.rst:11 +#, fuzzy +msgid "*aiogram* has some builtin useful filters or you can write own filters." +msgstr "*aiogram* має декілька вбудованих корисних фільтрів." + +#: ../../dispatcher/filters/index.rst:14 msgid "Builtin filters" msgstr "Вбудовані фільтри" -#: ../../dispatcher/filters/index.rst:13 +#: ../../dispatcher/filters/index.rst:16 msgid "Here is list of builtin filters:" msgstr "Ось список вбудованих фільтрів:" -#: ../../dispatcher/filters/index.rst:27 +#: ../../dispatcher/filters/index.rst:29 msgid "Writing own filters" msgstr "Написання власних фільтрів" -#: ../../dispatcher/filters/index.rst:29 +#: ../../dispatcher/filters/index.rst:31 msgid "Filters can be:" msgstr "Фільтри бувають:" -#: ../../dispatcher/filters/index.rst:31 +#: ../../dispatcher/filters/index.rst:33 msgid "Asynchronous function (:code:`async def my_filter(*args, **kwargs): pass`)" msgstr "Асинхронною функцією (:code:`async def my_filter(*args, **kwargs): pass`)" -#: ../../dispatcher/filters/index.rst:32 +#: ../../dispatcher/filters/index.rst:34 msgid "Synchronous function (:code:`def my_filter(*args, **kwargs): pass`)" msgstr "Синхронною функцією (:code:`def my_filter(*args, **kwargs): pass`)" -#: ../../dispatcher/filters/index.rst:33 +#: ../../dispatcher/filters/index.rst:35 msgid "Anonymous function (:code:`lambda event: True`)" msgstr "Анонімною функцією (:code:`lambda event: True`)" -#: ../../dispatcher/filters/index.rst:34 +#: ../../dispatcher/filters/index.rst:36 msgid "Any awaitable object" msgstr "" "Будь-яким очікуваним об'єктом (awaitable object, об'єкт, який може бути " "використаний в :code:`await` виразі)" -#: ../../dispatcher/filters/index.rst:35 +#: ../../dispatcher/filters/index.rst:37 msgid "Subclass of :class:`aiogram.filters.base.Filter`" msgstr "Підкласом :class:`aiogram.filters.base.Filter`" -#: ../../dispatcher/filters/index.rst:36 +#: ../../dispatcher/filters/index.rst:38 msgid "Instances of :ref:`MagicFilter `" msgstr "Екземпляром :ref:`MagicFilter `" -#: ../../dispatcher/filters/index.rst:38 +#: ../../dispatcher/filters/index.rst:40 msgid "" -"and should return bool or dict. If the dictionary is passed as result of filter " -"- resulted data will be propagated to the next filters and handler as keywords " -"arguments." +"and should return bool or dict. If the dictionary is passed as result of " +"filter - resulted data will be propagated to the next filters and handler" +" as keywords arguments." msgstr "" -"і має повертати bool або dict. Якщо словник передається як результат фільтра, " -"отримані дані будуть передані до наступних фільтрів і обробника як аргументи " -"ключових слів." +"і має повертати bool або dict. Якщо словник передається як результат " +"фільтра, отримані дані будуть передані до наступних фільтрів і обробника " +"як аргументи ключових слів." -#: ../../dispatcher/filters/index.rst:43 +#: ../../dispatcher/filters/index.rst:45 msgid "Base class for own filters" msgstr "Базовий клас для власних фільтрів" #: aiogram.filters.base.Filter:1 of msgid "" -"If you want to register own filters like builtin filters you will need to write " -"subclass of this class with overriding the :code:`__call__` method and adding " -"filter attributes." +"If you want to register own filters like builtin filters you will need to" +" write subclass of this class with overriding the :code:`__call__` method" +" and adding filter attributes." msgstr "" -"Якщо Ви хочете зареєструвати власні фільтри, як вбудовані фільтри, Вам потрібно " -"буде написати підклас цього класу з заміною методу :code:`__call__` і " -"додаванням атрибутів фільтра." +"Якщо Ви хочете зареєструвати власні фільтри, як вбудовані фільтри, Вам " +"потрібно буде написати підклас цього класу з заміною методу " +":code:`__call__` і додаванням атрибутів фільтра." #: aiogram.filters.base.Filter.__call__:1 of msgid "This method should be overridden." @@ -118,72 +121,78 @@ msgstr ":class:`bool` or :class:`Dict[str, Any]`" #: aiogram.filters.base.Filter.update_handler_flags:1 of msgid "" -"Also if you want to extend handler flags with using this filter you should " -"implement this method" +"Also if you want to extend handler flags with using this filter you " +"should implement this method" msgstr "" -"Крім того, якщо ви хочете розширити маркери обробника (handler) за допомогою " -"цього фільтра, вам слід реалізувати цей метод" +"Крім того, якщо ви хочете розширити маркери обробника (handler) за " +"допомогою цього фільтра, вам слід реалізувати цей метод" #: aiogram.filters.base.Filter.update_handler_flags of msgid "Parameters" msgstr "Параметри" -#: aiogram.filters.base.Filter.update_handler_flags:3 of +#: aiogram.filters.base.Filter.update_handler_flags:4 of msgid "existing flags, can be updated directly" msgstr "існуючі маркери, можна оновити безпосередньо" -#: ../../dispatcher/filters/index.rst:51 +#: ../../dispatcher/filters/index.rst:53 msgid "Own filter example" msgstr "Приклад власного фільтра" -#: ../../dispatcher/filters/index.rst:53 +#: ../../dispatcher/filters/index.rst:55 msgid "For example if you need to make simple text filter:" msgstr "Наприклад, якщо Вам потрібно створити простий текстовий фільтр:" -#: ../../dispatcher/filters/index.rst:60 +#: ../../dispatcher/filters/index.rst:62 msgid "Combining Filters" msgstr "Комбінування фільтрів" -#: ../../dispatcher/filters/index.rst:62 +#: ../../dispatcher/filters/index.rst:64 msgid "In general, all filters can be combined in two ways" msgstr "Взагалом, усі фільтри можна комбінувати двома способами" -#: ../../dispatcher/filters/index.rst:66 +#: ../../dispatcher/filters/index.rst:68 msgid "Recommended way" msgstr "Рекомендований спосіб" -#: ../../dispatcher/filters/index.rst:68 +#: ../../dispatcher/filters/index.rst:70 msgid "" -"If you specify multiple filters in a row, it will be checked with an \"and\" " -"condition:" +"If you specify multiple filters in a row, it will be checked with an " +"\"and\" condition:" msgstr "" -"Якщо Ви вкажете кілька фільтрів поспіль, це буде перевірено умовою \"and\" :" +"Якщо Ви вкажете кілька фільтрів поспіль, це буде перевірено умовою " +"\"and\" :" -#: ../../dispatcher/filters/index.rst:75 +#: ../../dispatcher/filters/index.rst:77 msgid "" -"Also, if you want to use two alternative ways to run the same handler (\"or\" " -"condition) you can register the handler twice or more times as you like" +"Also, if you want to use two alternative ways to run the same handler " +"(\"or\" condition) you can register the handler twice or more times as " +"you like" msgstr "" -"Крім того, якщо ви хочете використовувати два альтернативні способи запуску " -"одного обробника (умова \"or\"), ви можете зареєструвати обробник двічі або " -"більше разів, як вам подобається" +"Крім того, якщо ви хочете використовувати два альтернативні способи " +"запуску одного обробника (умова \"or\"), ви можете зареєструвати обробник" +" двічі або більше разів, як вам подобається" -#: ../../dispatcher/filters/index.rst:84 +#: ../../dispatcher/filters/index.rst:86 msgid "" -"Also sometimes you will need to invert the filter result, for example you have " -"an *IsAdmin* filter and you want to check if the user is not an admin" +"Also sometimes you will need to invert the filter result, for example you" +" have an *IsAdmin* filter and you want to check if the user is not an " +"admin" msgstr "" -"Також іноді Вам потрібно буде інвертувати результат фільтра, наприклад, у вас є " -"фільтр *IsAdmin* і ви хочете перевірити, чи користувач не є адміністратором" +"Також іноді Вам потрібно буде інвертувати результат фільтра, наприклад, у" +" вас є фільтр *IsAdmin* і ви хочете перевірити, чи користувач не є " +"адміністратором" -#: ../../dispatcher/filters/index.rst:93 +#: ../../dispatcher/filters/index.rst:95 msgid "Another possible way" msgstr "Інший можливий спосіб" -#: ../../dispatcher/filters/index.rst:95 +#: ../../dispatcher/filters/index.rst:97 msgid "" -"An alternative way is to combine using special functions (:func:`and_f`, :func:" -"`or_f`, :func:`invert_f` from :code:`aiogram.filters` module):" +"An alternative way is to combine using special functions (:func:`and_f`, " +":func:`or_f`, :func:`invert_f` from :code:`aiogram.filters` module):" msgstr "" -"Альтернативним способом є об’єднання за допомогою спеціальних функцій (:func:" -"`and_f`, :func:`or_f`, :func:`invert_f` з модуля :code:`aiogram.filters`):" +"Альтернативним способом є об’єднання за допомогою спеціальних функцій " +"(:func:`and_f`, :func:`or_f`, :func:`invert_f` з модуля " +":code:`aiogram.filters`):" + diff --git a/docs/locale/uk_UA/LC_MESSAGES/dispatcher/filters/magic_data.po b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/filters/magic_data.po index d62ee41e..5025169e 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/dispatcher/filters/magic_data.po +++ b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/filters/magic_data.po @@ -7,36 +7,24 @@ msgid "" msgstr "" "Project-Id-Version: aiogram\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 22:10+0300\n" +"POT-Creation-Date: 2023-08-26 23:17+0300\n" "PO-Revision-Date: 2022-10-25 16:00+0300\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../dispatcher/filters/magic_data.rst:3 msgid "MagicData" msgstr "MagicData" -#: aiogram.filters.magic_data.MagicData:1 of -msgid "This filter helps to filter event with contextual data" -msgstr "Цей фільтр допомагає фільтрувати події з контекстними даними" - -#: ../../dispatcher/filters/magic_data.rst:10 -msgid "Can be imported:" -msgstr "Можна імпортувати:" - -#: ../../dispatcher/filters/magic_data.rst:12 -msgid ":code:`from aiogram.filters import MagicData`" -msgstr ":code:`from aiogram.filters import MagicData`" - -#: ../../dispatcher/filters/magic_data.rst:15 +#: ../../dispatcher/filters/magic_data.rst:6 msgid "Usage" msgstr "Використання" -#: ../../dispatcher/filters/magic_data.rst:17 +#: ../../dispatcher/filters/magic_data.rst:8 msgid "" ":code:`MagicData(F.event.from_user.id == F.config.admin_id)` (Note that " ":code:`config` should be passed from middleware)" @@ -44,70 +32,86 @@ msgstr "" ":code:`MagicData(F.event.from_user.id == F.config.admin_id)` (Зауважте, " "що :code:`config` слід передати з проміжної програми)" -#: ../../dispatcher/filters/magic_data.rst:21 +#: ../../dispatcher/filters/magic_data.rst:11 +msgid "Explanation" +msgstr "" + +#: aiogram.filters.magic_data.MagicData:1 of +msgid "This filter helps to filter event with contextual data" +msgstr "Цей фільтр допомагає фільтрувати події з контекстними даними" + +#: ../../dispatcher/filters/magic_data.rst:18 +msgid "Can be imported:" +msgstr "Можна імпортувати:" + +#: ../../dispatcher/filters/magic_data.rst:20 +msgid ":code:`from aiogram.filters import MagicData`" +msgstr ":code:`from aiogram.filters import MagicData`" + +#: ../../dispatcher/filters/magic_data.rst:24 msgid "Allowed handlers" msgstr "Дозволені типи обробників (handler)" -#: ../../dispatcher/filters/magic_data.rst:23 +#: ../../dispatcher/filters/magic_data.rst:26 msgid "Allowed update types for this filter:" msgstr "Дозволені типи оновлень для цього фільтра:" -#: ../../dispatcher/filters/magic_data.rst:25 +#: ../../dispatcher/filters/magic_data.rst:28 msgid ":code:`message`" msgstr ":code:`message`" -#: ../../dispatcher/filters/magic_data.rst:26 +#: ../../dispatcher/filters/magic_data.rst:29 msgid ":code:`edited_message`" msgstr ":code:`edited_message`" -#: ../../dispatcher/filters/magic_data.rst:27 +#: ../../dispatcher/filters/magic_data.rst:30 msgid ":code:`channel_post`" msgstr ":code:`channel_post`" -#: ../../dispatcher/filters/magic_data.rst:28 +#: ../../dispatcher/filters/magic_data.rst:31 msgid ":code:`edited_channel_post`" msgstr ":code:`edited_channel_post`" -#: ../../dispatcher/filters/magic_data.rst:29 +#: ../../dispatcher/filters/magic_data.rst:32 msgid ":code:`inline_query`" msgstr ":code:`inline_query`" -#: ../../dispatcher/filters/magic_data.rst:30 +#: ../../dispatcher/filters/magic_data.rst:33 msgid ":code:`chosen_inline_result`" msgstr ":code:`chosen_inline_result`" -#: ../../dispatcher/filters/magic_data.rst:31 +#: ../../dispatcher/filters/magic_data.rst:34 msgid ":code:`callback_query`" msgstr ":code:`callback_query`" -#: ../../dispatcher/filters/magic_data.rst:32 +#: ../../dispatcher/filters/magic_data.rst:35 msgid ":code:`shipping_query`" msgstr ":code:`shipping_query`" -#: ../../dispatcher/filters/magic_data.rst:33 +#: ../../dispatcher/filters/magic_data.rst:36 msgid ":code:`pre_checkout_query`" msgstr ":code:`pre_checkout_query`" -#: ../../dispatcher/filters/magic_data.rst:34 +#: ../../dispatcher/filters/magic_data.rst:37 msgid ":code:`poll`" msgstr ":code:`poll`" -#: ../../dispatcher/filters/magic_data.rst:35 +#: ../../dispatcher/filters/magic_data.rst:38 msgid ":code:`poll_answer`" msgstr ":code:`poll_answer`" -#: ../../dispatcher/filters/magic_data.rst:36 +#: ../../dispatcher/filters/magic_data.rst:39 msgid ":code:`my_chat_member`" msgstr ":code:`my_chat_member`" -#: ../../dispatcher/filters/magic_data.rst:37 +#: ../../dispatcher/filters/magic_data.rst:40 msgid ":code:`chat_member`" msgstr ":code:`chat_member`" -#: ../../dispatcher/filters/magic_data.rst:38 +#: ../../dispatcher/filters/magic_data.rst:41 msgid ":code:`chat_join_request`" msgstr ":code:`chat_join_request`" -#: ../../dispatcher/filters/magic_data.rst:39 +#: ../../dispatcher/filters/magic_data.rst:42 msgid ":code:`error`" msgstr ":code:`error`" diff --git a/docs/locale/en/LC_MESSAGES/dispatcher/filters/text.po b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/filters/text.po similarity index 95% rename from docs/locale/en/LC_MESSAGES/dispatcher/filters/text.po rename to docs/locale/uk_UA/LC_MESSAGES/dispatcher/filters/text.po index f267c57f..b5b6c91d 100644 --- a/docs/locale/en/LC_MESSAGES/dispatcher/filters/text.po +++ b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/filters/text.po @@ -1,21 +1,21 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2022, aiogram Team +# Copyright (C) 2023, aiogram Team # This file is distributed under the same license as the aiogram package. -# FIRST AUTHOR , 2022. +# FIRST AUTHOR , 2023. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 22:10+0300\n" +"POT-Creation-Date: 2023-01-07 23:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../dispatcher/filters/text.rst:3 msgid "Text" diff --git a/docs/locale/uk_UA/LC_MESSAGES/dispatcher/index.po b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/index.po index 6ad7aaf9..bf754fc4 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/dispatcher/index.po +++ b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/index.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" +"POT-Creation-Date: 2023-08-06 16:52+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" #: ../../dispatcher/index.rst:3 msgid "Handling events" @@ -60,3 +60,23 @@ msgid "" msgstr "" "Диспетчер також розділений на дві сутності - Router та Dispatcher. " "Dispatcher є підкласом router та завжди повинен бути кореневим router." + +#: ../../dispatcher/index.rst:18 +msgid "Telegram supports two ways of receiving updates:" +msgstr "" + +#: ../../dispatcher/index.rst:20 +msgid "" +":ref:`Webhook ` - you should configure your web server to " +"receive updates from Telegram;" +msgstr "" + +#: ../../dispatcher/index.rst:21 +msgid "" +":ref:`Long polling ` - you should request updates from " +"Telegram." +msgstr "" + +#: ../../dispatcher/index.rst:23 +msgid "So, you can use both of them with *aiogram*." +msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/dispatcher/long_polling.po b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/long_polling.po new file mode 100644 index 00000000..d5581be5 --- /dev/null +++ b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/long_polling.po @@ -0,0 +1,62 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2023, aiogram Team +# This file is distributed under the same license as the aiogram package. +# FIRST AUTHOR , 2023. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: aiogram \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-08-06 16:52+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.12.1\n" + +#: ../../dispatcher/long_polling.rst:5 +msgid "Long-polling" +msgstr "" + +#: ../../dispatcher/long_polling.rst:7 +msgid "" +"Long-polling is a technology that allows a Telegram server to send " +"updates in case when you don't have dedicated IP address or port to " +"receive webhooks for example on a developer machine." +msgstr "" + +#: ../../dispatcher/long_polling.rst:11 +msgid "" +"To use long-polling mode you should use " +":meth:`aiogram.dispatcher.dispatcher.Dispatcher.start_polling` or " +":meth:`aiogram.dispatcher.dispatcher.Dispatcher.run_polling` methods." +msgstr "" + +#: ../../dispatcher/long_polling.rst:16 +msgid "" +"You can use polling from only one polling process per single Bot token, " +"in other case Telegram server will return an error." +msgstr "" + +#: ../../dispatcher/long_polling.rst:21 +msgid "" +"If you will need to scale your bot, you should use webhooks instead of " +"long-polling." +msgstr "" + +#: ../../dispatcher/long_polling.rst:25 +msgid "If you will use multibot mode, you should use webhook mode for all bots." +msgstr "" + +#: ../../dispatcher/long_polling.rst:28 +msgid "Example" +msgstr "" + +#: ../../dispatcher/long_polling.rst:30 +msgid "" +"This example will show you how to create simple echo bot based on long-" +"polling." +msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/dispatcher/router.po b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/router.po index f709e7bd..2c72b937 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/dispatcher/router.po +++ b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/router.po @@ -5,22 +5,26 @@ # msgid "" msgstr "" -"Project-Id-Version: aiogram\n" +"Project-Id-Version: aiogram\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" +"POT-Creation-Date: 2023-08-26 23:17+0300\n" "PO-Revision-Date: 2022-12-10 20:41+0200\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.12.1\n" -#: ../../dispatcher/router.rst:3 +#: ../../dispatcher/router.rst:5 msgid "Router" msgstr "Маршрутизатор (Router)" +#: ../../dispatcher/router.rst:7 +#, fuzzy +msgid "Usage:" +msgstr "Повідомлення" + #: aiogram.dispatcher.router.Router:1 of msgid "Bases: :py:class:`object`" msgstr "Базується на :py:class:`object`" @@ -36,57 +40,79 @@ msgstr "" #: aiogram.dispatcher.router.Router:4 of msgid "Event handlers can be registered in observer by two ways:" -msgstr "" -"Обробники подій можуть бути зареєстровані в обсервері двома шляхами:" +msgstr "Обробники подій можуть бути зареєстровані в обсервері двома шляхами:" #: aiogram.dispatcher.router.Router:6 of msgid "" "By observer method - :obj:`router..register(handler, " ")`" msgstr "" -"За допомогою методу обсервера - :obj:`router.." -"register(handler, )`" +"За допомогою методу обсервера - " +":obj:`router..register(handler, )`" #: aiogram.dispatcher.router.Router:7 of msgid "By decorator - :obj:`@router.()`" -msgstr "" -"За допомогою декоратора - :obj:`@router.()`" +msgstr "За допомогою декоратора - :obj:`@router.()`" #: aiogram.dispatcher.router.Router.__init__ -#: aiogram.dispatcher.router.Router.include_router of +#: aiogram.dispatcher.router.Router.include_router +#: aiogram.dispatcher.router.Router.include_routers +#: aiogram.dispatcher.router.Router.resolve_used_update_types of msgid "Parameters" msgstr "Параметри" #: aiogram.dispatcher.router.Router.__init__:1 of msgid "Optional router name, can be useful for debugging" -msgstr "" -"Додаткова назва маршрутизатора, може бути корисною для відлагодження" +msgstr "Додаткова назва маршрутизатора, може бути корисною для відлагодження" #: aiogram.dispatcher.router.Router.include_router:1 of msgid "Attach another router." msgstr "Підключення маршрутизатора." -#: aiogram.dispatcher.router.Router.include_router of +#: aiogram.dispatcher.router.Router.include_router +#: aiogram.dispatcher.router.Router.include_routers +#: aiogram.dispatcher.router.Router.resolve_used_update_types of msgid "Returns" msgstr "Повертає" -#: ../../dispatcher/router.rst:11 +#: aiogram.dispatcher.router.Router.include_routers:1 of +#, fuzzy +msgid "Attach multiple routers." +msgstr "Підключення маршрутизатора." + +#: aiogram.dispatcher.router.Router.resolve_used_update_types:1 of +msgid "Resolve registered event names" +msgstr "" + +#: aiogram.dispatcher.router.Router.resolve_used_update_types:3 of +msgid "Is useful for getting updates only for registered event types." +msgstr "" + +#: aiogram.dispatcher.router.Router.resolve_used_update_types:5 of +msgid "skip specified event names" +msgstr "" + +#: aiogram.dispatcher.router.Router.resolve_used_update_types:6 of +msgid "set of registered names" +msgstr "" + +#: ../../dispatcher/router.rst:29 msgid "Event observers" msgstr "Обсервери подій" -#: ../../dispatcher/router.rst:15 +#: ../../dispatcher/router.rst:33 msgid "" "All handlers always should be asynchronous. The name of the handler " "function is not important. The event argument name is also not important " -"but it is recommended to not overlap the name with contextual data in " -"due to function can not accept two arguments with the same name." +"but it is recommended to not overlap the name with contextual data in due" +" to function can not accept two arguments with the same name." msgstr "" -"Усі обробники завжди мають бути асинхронними. Ім'я функції обробки не " -"має значення. Назва аргументу події також не важлива, але рекомендується " -"не накладати назву на контекстні дані, оскільки функція не може прийняти " -"два аргументи з однаковою назвою." +"Усі обробники завжди мають бути асинхронними. Ім'я функції обробки не має" +" значення. Назва аргументу події також не важлива, але рекомендується не " +"накладати назву на контекстні дані, оскільки функція не може прийняти два" +" аргументи з однаковою назвою." -#: ../../dispatcher/router.rst:18 +#: ../../dispatcher/router.rst:36 msgid "" "Here is the list of available observers and examples of how to register " "handlers" @@ -94,11 +120,11 @@ msgstr "" "Ось список доступних обсерверів і приклади того, як зареєструвати " "обробники" -#: ../../dispatcher/router.rst:20 +#: ../../dispatcher/router.rst:38 msgid "" -"In these examples only decorator-style registering handlers are used, " -"but if you don't like @decorators just use :obj:`." -"register(...)` method instead." +"In these examples only decorator-style registering handlers are used, but" +" if you don't like @decorators just use :obj:`.register(...)`" +" method instead." msgstr "" "У цих прикладах використовуються лише обробники реєстрації у стилі " "декоратора, але якщо вам не подобаються @decorators, просто " @@ -120,89 +146,91 @@ msgstr "" msgid "Message" msgstr "Повідомлення" -#: ../../dispatcher/router.rst:41 +#: ../../dispatcher/router.rst:46 msgid "Be attentive with filtering this event" msgstr "Будьте уважні при фільтруванні цієї події" -#: ../../dispatcher/router.rst:43 +#: ../../dispatcher/router.rst:48 msgid "" "You should expect that this event can be with different sets of " "attributes in different cases" msgstr "" -"Вам слід очікувати, що ця подія може мати різні набори атрибутів у " -"різних випадках" +"Вам слід очікувати, що ця подія може мати різні набори атрибутів у різних" +" випадках" -#: ../../dispatcher/router.rst:45 +#: ../../dispatcher/router.rst:50 msgid "" "(For example text, sticker and document are always of different content " "types of message)" -msgstr "" -"(Наприклад, текст, стікер та документ завжди мають різні типи вмісту)" +msgstr "(Наприклад, текст, стікер та документ завжди мають різні типи вмісту)" -#: ../../dispatcher/router.rst:47 +#: ../../dispatcher/router.rst:52 msgid "" -"Recommended way to check field availability before usage, for example " -"via :ref:`magic filter `: :code:`F.text` to handle text, :" -"code:`F.sticker` to handle stickers only and etc." +"Recommended way to check field availability before usage, for example via" +" :ref:`magic filter `: :code:`F.text` to handle text, " +":code:`F.sticker` to handle stickers only and etc." msgstr "" "Рекомендований спосіб перевірити наявність полів перед використанням, " -"наприклад за допомогою :ref:`magic filter `: :code:`F." -"text` для обробки тексту, :code:`F.sticker` для обробки лише стікерів і " -"тощо." +"наприклад за допомогою :ref:`magic filter `: " +":code:`F.text` для обробки тексту, :code:`F.sticker` для обробки лише " +"стікерів і тощо." -#: ../../dispatcher/router.rst:58 +#: ../../dispatcher/router.rst:63 msgid "Edited message" msgstr "Відредаговане повідомлення" -#: ../../dispatcher/router.rst:66 +#: ../../dispatcher/router.rst:71 msgid "Channel post" msgstr "Пост на каналі" -#: ../../dispatcher/router.rst:74 +#: ../../dispatcher/router.rst:79 msgid "Edited channel post" msgstr "Відредагований пост на каналі" -#: ../../dispatcher/router.rst:83 +#: ../../dispatcher/router.rst:88 msgid "Inline query" msgstr "Inline запит" -#: ../../dispatcher/router.rst:91 +#: ../../dispatcher/router.rst:96 msgid "Chosen inline query" msgstr "Вибраний результат inline запиту" -#: ../../dispatcher/router.rst:99 +#: ../../dispatcher/router.rst:104 msgid "Callback query" msgstr "Запит зворотної відповіді" -#: ../../dispatcher/router.rst:107 +#: ../../dispatcher/router.rst:112 msgid "Shipping query" msgstr "Запит підтвердження доставки" -#: ../../dispatcher/router.rst:115 +#: ../../dispatcher/router.rst:120 msgid "Pre checkout query" msgstr "Запит перед оформленням замовлення" -#: ../../dispatcher/router.rst:123 +#: ../../dispatcher/router.rst:128 msgid "Poll" msgstr "Опитування" -#: ../../dispatcher/router.rst:131 +#: ../../dispatcher/router.rst:136 msgid "Poll answer" msgstr "Відповідь на опитування" -#: ../../dispatcher/router.rst:139 +#: ../../dispatcher/router.rst:144 msgid "Errors" msgstr "Помилки" -#: ../../dispatcher/router.rst:146 -msgid "Is useful for handling errors from other handlers" +#: ../../dispatcher/router.rst:151 +#, fuzzy +msgid "" +"Is useful for handling errors from other handlers, error event described " +":ref:`here `" msgstr "Корисно для обробки помилок інших обробників" -#: ../../dispatcher/router.rst:150 +#: ../../dispatcher/router.rst:158 msgid "Nested routers" msgstr "Вкладені маршрутизатори" -#: ../../dispatcher/router.rst:155 +#: ../../dispatcher/router.rst:163 msgid "" "Routers by the way can be nested to an another routers with some " "limitations:" @@ -210,30 +238,50 @@ msgstr "" "До речі, маршрутизатори можуть бути вкладеними в інші маршрутизатори з " "деякими обмеженнями:" -#: ../../dispatcher/router.rst:155 +#: ../../dispatcher/router.rst:163 msgid "" "1. Router **CAN NOT** include itself 1. Routers **CAN NOT** be used for " -"circular including (router 1 include router 2, router 2 include router " -"3, router 3 include router 1)" +"circular including (router 1 include router 2, router 2 include router 3," +" router 3 include router 1)" msgstr "" "1. Маршрутизатор **НЕ МОЖЕ** включити себе \n" "2. Маршрутизатори **НЕ МОЖНА** використовувати для циклічного включення " "(маршрутизатор 1 включає маршрутизатор 2, маршрутизатор 2 включає " "маршрутизатор 3, маршрутизатор 3 включає маршрутизатор 1)" -#: ../../dispatcher/router.rst:159 +#: ../../dispatcher/router.rst:167 msgid "Example:" msgstr "Приклад:" -#: ../../dispatcher/router.rst:161 ../../dispatcher/router.rst:171 +#: ../../dispatcher/router.rst:169 +#, fuzzy +msgid "module_1.py" +msgstr "module_2.py" + +#: ../../dispatcher/router.rst:179 msgid "module_2.py" msgstr "module_2.py" -#: ../../dispatcher/router.rst:183 +#: ../../dispatcher/router.rst:191 +msgid "Update" +msgstr "Оновлення" + +#: ../../dispatcher/router.rst:200 +msgid "The only root Router (Dispatcher) can handle this type of event." +msgstr "" + +#: ../../dispatcher/router.rst:204 +msgid "" +"Dispatcher already has default handler for this event type, so you can " +"use it for handling all updates that are not handled by any other " +"handlers." +msgstr "" + +#: ../../dispatcher/router.rst:207 msgid "How it works?" msgstr "Як це працює?" -#: ../../dispatcher/router.rst:185 +#: ../../dispatcher/router.rst:209 msgid "" "For example, dispatcher has 2 routers, the last router also has one " "nested router:" @@ -245,6 +293,6 @@ msgstr "" msgid "Nested routers example" msgstr "Приклад вкладених маршрутизаторів" -#: ../../dispatcher/router.rst:190 +#: ../../dispatcher/router.rst:214 msgid "In this case update propagation flow will have form:" msgstr "У цьому випадку потік розповсюдження оновлення матиме вигляд:" diff --git a/docs/locale/uk_UA/LC_MESSAGES/dispatcher/webhook.po b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/webhook.po new file mode 100644 index 00000000..880fef46 --- /dev/null +++ b/docs/locale/uk_UA/LC_MESSAGES/dispatcher/webhook.po @@ -0,0 +1,307 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2023, aiogram Team +# This file is distributed under the same license as the aiogram package. +# FIRST AUTHOR , 2023. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: aiogram \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-29 02:22+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.13.1\n" + +#: ../../dispatcher/webhook.rst:5 +msgid "Webhook" +msgstr "" + +#: ../../dispatcher/webhook.rst:7 +msgid "" +"Telegram Bot API supports webhook. If you set webhook for your bot, " +"Telegram will send updates to the specified url. You can use " +":meth:`aiogram.methods.set_webhook.SetWebhook` method to specify a url " +"and receive incoming updates on it." +msgstr "" + +#: ../../dispatcher/webhook.rst:14 +msgid "If you use webhook, you can't use long polling at the same time." +msgstr "" + +#: ../../dispatcher/webhook.rst:16 +msgid "" +"Before start i'll recommend you to read `official Telegram's " +"documentation about webhook `_" +msgstr "" + +#: ../../dispatcher/webhook.rst:18 +msgid "After you read it, you can start to read this section." +msgstr "" + +#: ../../dispatcher/webhook.rst:20 +msgid "" +"Generally to use webhook with aiogram you should use any async web " +"framework. By out of the box aiogram has an aiohttp integration, so we'll" +" use it." +msgstr "" + +#: ../../dispatcher/webhook.rst:25 +msgid "" +"You can use any async web framework you want, but you should write your " +"own integration if you don't use aiohttp." +msgstr "" + +#: ../../dispatcher/webhook.rst:29 +msgid "aiohttp integration" +msgstr "" + +#: ../../dispatcher/webhook.rst:31 +msgid "Out of the box aiogram has aiohttp integration, so you can use it." +msgstr "" + +#: ../../dispatcher/webhook.rst:33 +msgid "" +"Here is available few ways to do it using different implementations of " +"the webhook controller:" +msgstr "" + +#: ../../dispatcher/webhook.rst:35 +msgid "" +":class:`aiogram.webhook.aiohttp_server.BaseRequestHandler` - Abstract " +"class for aiohttp webhook controller" +msgstr "" + +#: ../../dispatcher/webhook.rst:36 +msgid "" +":class:`aiogram.webhook.aiohttp_server.SimpleRequestHandler` - Simple " +"webhook controller, uses single Bot instance" +msgstr "" + +#: ../../dispatcher/webhook.rst:37 +msgid "" +":class:`aiogram.webhook.aiohttp_server.TokenBasedRequestHandler` - Token" +" based webhook controller, uses multiple Bot instances and tokens" +msgstr "" + +#: ../../dispatcher/webhook.rst:39 +msgid "You can use it as is or inherit from it and override some methods." +msgstr "" + +#: aiogram.webhook.aiohttp_server.BaseRequestHandler.__init__:1 of +msgid "" +"Base handler that helps to handle incoming request from aiohttp and " +"propagate it to the Dispatcher" +msgstr "" + +#: aiogram.webhook.aiohttp_server.BaseRequestHandler.__init__ +#: aiogram.webhook.aiohttp_server.BaseRequestHandler.register +#: aiogram.webhook.aiohttp_server.BaseRequestHandler.resolve_bot +#: aiogram.webhook.aiohttp_server.SimpleRequestHandler.__init__ +#: aiogram.webhook.aiohttp_server.SimpleRequestHandler.resolve_bot +#: aiogram.webhook.aiohttp_server.TokenBasedRequestHandler.__init__ +#: aiogram.webhook.aiohttp_server.TokenBasedRequestHandler.register +#: aiogram.webhook.aiohttp_server.TokenBasedRequestHandler.resolve_bot +#: aiogram.webhook.aiohttp_server.ip_filter_middleware of +msgid "Parameters" +msgstr "" + +#: aiogram.webhook.aiohttp_server.BaseRequestHandler.__init__:4 +#: aiogram.webhook.aiohttp_server.SimpleRequestHandler.__init__:3 +#: aiogram.webhook.aiohttp_server.TokenBasedRequestHandler.__init__:9 of +msgid "instance of :class:`aiogram.dispatcher.dispatcher.Dispatcher`" +msgstr "" + +#: aiogram.webhook.aiohttp_server.BaseRequestHandler.__init__:5 of +msgid "" +"immediately responds to the Telegram instead of a waiting end of a " +"handler process" +msgstr "" + +#: aiogram.webhook.aiohttp_server.BaseRequestHandler.register:1 of +msgid "Register route and shutdown callback" +msgstr "" + +#: aiogram.webhook.aiohttp_server.BaseRequestHandler.register:3 +#: aiogram.webhook.aiohttp_server.TokenBasedRequestHandler.register:3 of +msgid "instance of aiohttp Application" +msgstr "" + +#: aiogram.webhook.aiohttp_server.BaseRequestHandler.register:4 +#: aiogram.webhook.aiohttp_server.TokenBasedRequestHandler.register:4 of +msgid "route path" +msgstr "" + +#: aiogram.webhook.aiohttp_server.BaseRequestHandler.resolve_bot:1 +#: aiogram.webhook.aiohttp_server.SimpleRequestHandler.resolve_bot:1 of +msgid "This method should be implemented in subclasses of this class." +msgstr "" + +#: aiogram.webhook.aiohttp_server.BaseRequestHandler.resolve_bot:3 +#: aiogram.webhook.aiohttp_server.SimpleRequestHandler.resolve_bot:3 of +msgid "Resolve Bot instance from request." +msgstr "" + +#: aiogram.webhook.aiohttp_server.BaseRequestHandler.resolve_bot +#: aiogram.webhook.aiohttp_server.SimpleRequestHandler.resolve_bot +#: aiogram.webhook.aiohttp_server.TokenBasedRequestHandler.resolve_bot +#: aiogram.webhook.aiohttp_server.ip_filter_middleware of +msgid "Returns" +msgstr "" + +#: aiogram.webhook.aiohttp_server.BaseRequestHandler.resolve_bot:6 +#: aiogram.webhook.aiohttp_server.SimpleRequestHandler.resolve_bot:6 of +msgid "Bot instance" +msgstr "" + +#: aiogram.webhook.aiohttp_server.SimpleRequestHandler.__init__:1 of +msgid "Handler for single Bot instance" +msgstr "" + +#: aiogram.webhook.aiohttp_server.SimpleRequestHandler.__init__:4 +#: aiogram.webhook.aiohttp_server.TokenBasedRequestHandler.__init__:10 of +msgid "" +"immediately responds to the Telegram instead of a waiting end of handler " +"process" +msgstr "" + +#: aiogram.webhook.aiohttp_server.SimpleRequestHandler.__init__:6 of +msgid "instance of :class:`aiogram.client.bot.Bot`" +msgstr "" + +#: aiogram.webhook.aiohttp_server.SimpleRequestHandler.close:1 of +msgid "Close bot session" +msgstr "" + +#: aiogram.webhook.aiohttp_server.TokenBasedRequestHandler.__init__:1 of +msgid "" +"Handler that supports multiple bots the context will be resolved from " +"path variable 'bot_token'" +msgstr "" + +#: aiogram.webhook.aiohttp_server.TokenBasedRequestHandler.__init__:6 of +msgid "" +"This handler is not recommended in due to token is available in URL and " +"can be logged by reverse proxy server or other middleware." +msgstr "" + +#: aiogram.webhook.aiohttp_server.TokenBasedRequestHandler.__init__:12 of +msgid "kwargs that will be passed to new Bot instance" +msgstr "" + +#: aiogram.webhook.aiohttp_server.TokenBasedRequestHandler.register:1 of +msgid "Validate path, register route and shutdown callback" +msgstr "" + +#: aiogram.webhook.aiohttp_server.TokenBasedRequestHandler.resolve_bot:1 of +msgid "Get bot token from a path and create or get from cache Bot instance" +msgstr "" + +#: ../../dispatcher/webhook.rst:51 +msgid "Security" +msgstr "" + +#: ../../dispatcher/webhook.rst:53 +msgid "" +"Telegram supports two methods to verify incoming requests that they are " +"from Telegram:" +msgstr "" + +#: ../../dispatcher/webhook.rst:56 +msgid "Using a secret token" +msgstr "" + +#: ../../dispatcher/webhook.rst:58 +msgid "" +"When you set webhook, you can specify a secret token and then use it to " +"verify incoming requests." +msgstr "" + +#: ../../dispatcher/webhook.rst:61 +msgid "Using IP filtering" +msgstr "" + +#: ../../dispatcher/webhook.rst:63 +msgid "" +"You can specify a list of IP addresses from which you expect incoming " +"requests, and then use it to verify incoming requests." +msgstr "" + +#: ../../dispatcher/webhook.rst:65 +msgid "" +"It can be acy using firewall rules or nginx configuration or middleware " +"on application level." +msgstr "" + +#: ../../dispatcher/webhook.rst:67 +msgid "" +"So, aiogram has an implementation of the IP filtering middleware for " +"aiohttp." +msgstr "" + +#: ../../dispatcher/webhook.rst:75 +msgid "Examples" +msgstr "" + +#: ../../dispatcher/webhook.rst:78 +msgid "Behind reverse proxy" +msgstr "" + +#: ../../dispatcher/webhook.rst:80 +msgid "" +"In this example we'll use aiohttp as web framework and nginx as reverse " +"proxy." +msgstr "" + +#: ../../dispatcher/webhook.rst:84 +msgid "" +"When you use nginx as reverse proxy, you should set `proxy_pass` to your " +"aiohttp server address." +msgstr "" + +#: ../../dispatcher/webhook.rst:98 +msgid "Without reverse proxy (not recommended)" +msgstr "" + +#: ../../dispatcher/webhook.rst:100 +msgid "In case without using reverse proxy, you can use aiohttp's ssl context." +msgstr "" + +#: ../../dispatcher/webhook.rst:102 +msgid "Also this example contains usage with self-signed certificate." +msgstr "" + +#: ../../dispatcher/webhook.rst:108 +msgid "With using other web framework" +msgstr "" + +#: ../../dispatcher/webhook.rst:110 +msgid "" +"You can pass incoming request to aiogram's webhook controller from any " +"web framework you want." +msgstr "" + +#: ../../dispatcher/webhook.rst:112 +msgid "" +"Read more about it in " +":meth:`aiogram.dispatcher.dispatcher.Dispatcher.feed_webhook_update` or " +":meth:`aiogram.dispatcher.dispatcher.Dispatcher.feed_update` methods." +msgstr "" + +#: ../../dispatcher/webhook.rst:123 +msgid "" +"If you want to use reply into webhook, you should check that result of " +"the :code:`feed_update` methods is an instance of API method and build " +":code:`multipart/form-data` or :code:`application/json` response body " +"manually." +msgstr "" + +#~ msgid "" +#~ "In case you want can't use reverse" +#~ " proxy, you can use aiohttp's ssl " +#~ "context." +#~ msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/index.po b/docs/locale/uk_UA/LC_MESSAGES/index.po index 143ac692..88f6908c 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/index.po +++ b/docs/locale/uk_UA/LC_MESSAGES/index.po @@ -8,27 +8,19 @@ msgid "" msgstr "" "Project-Id-Version: aiogram \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-11 01:52+0200\n" +"POT-Creation-Date: 2023-10-08 19:04+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" +"Generated-By: Babel 2.12.1\n" #: ../../../README.rst:3 -msgid "aiogram |beta badge|" +msgid "aiogram" msgstr "" -#: ../../../README.rst:94 -msgid "Beta badge" -msgstr "" - -#: ../../../README.rst:6 -msgid "This version is still in development!" -msgstr "Ще в розробці!" - #: ../../../README.rst:-1 msgid "MIT License" msgstr "" @@ -61,7 +53,7 @@ msgstr "Тести" msgid "Codecov" msgstr "" -#: ../../../README.rst:40 +#: ../../../README.rst:37 msgid "" "**aiogram** is a modern and fully asynchronous framework for `Telegram " "Bot API `_ written in Python 3.8 " @@ -74,39 +66,27 @@ msgstr "" "`_ та `aiohttp " "`_." -#: ../../../README.rst:45 +#: ../../../README.rst:42 msgid "Make your bots faster and more powerful!" msgstr "Зробіть своїх ботів швидшими та потужнішими!" -#: ../../../README.rst:50 +#: ../../../README.rst:47 msgid "Documentation:" msgstr "Документація" -#: ../../../README.rst:48 +#: ../../../README.rst:45 msgid "🇺🇸 `English `_" msgstr "🇺🇸 `English `_" -#: ../../../README.rst:49 +#: ../../../README.rst:46 msgid "🇺🇦 `Ukrainian `_" msgstr "🇺🇦 `Українською `_" -#: ../../../README.rst:54 -msgid "**Breaking News:**" -msgstr "**Важливі новини**" - -#: ../../../README.rst:56 -msgid "*aiogram* 3.0 has breaking changes." -msgstr "*aiogram* 3.0 має зміни, що ламають зворотну сумісність." - -#: ../../../README.rst:58 -msgid "It breaks backward compatibility by introducing new breaking changes!" -msgstr "Порушує зворотну сумісність, вводячи нові критичні зміни!" - -#: ../../../README.rst:61 +#: ../../../README.rst:50 msgid "Features" msgstr "Особливості" -#: ../../../README.rst:63 +#: ../../../README.rst:52 msgid "" "Asynchronous (`asyncio docs " "`_, :pep:`492`)" @@ -114,7 +94,7 @@ msgstr "" "Асинхронність (`asyncio docs " "`_, :pep:`492`)" -#: ../../../README.rst:64 +#: ../../../README.rst:53 msgid "" "Has type hints (:pep:`484`) and can be used with `mypy `_" @@ -122,20 +102,20 @@ msgstr "" "Має анотації типів (:pep:`484`) та може використовуватись з `mypy `_" -#: ../../../README.rst:65 +#: ../../../README.rst:54 msgid "Supports `PyPy `_" msgstr "Працює з `PyPy `_" -#: ../../../README.rst:66 +#: ../../../README.rst:55 #, fuzzy msgid "" -"Supports `Telegram Bot API 6.6 `_ and" +"Supports `Telegram Bot API 6.9 `_ and" " gets fast updates to the latest versions of the Bot API" msgstr "" "Підтримує `Telegram Bot API 6.3 `_ та" " швидко отримує оновлення до нових версії АПІ" -#: ../../../README.rst:67 +#: ../../../README.rst:56 msgid "" "Telegram Bot API integration code was `autogenerated " "`_ and can be easily re-generated " @@ -145,28 +125,28 @@ msgstr "" "/tg-codegen>`_ що надає змогу дуже легко оновлювати фреймворк до останніх" " версій АПІ" -#: ../../../README.rst:68 +#: ../../../README.rst:57 msgid "Updates router (Blueprints)" msgstr "Має роутери подій (Blueprints)" -#: ../../../README.rst:69 +#: ../../../README.rst:58 msgid "Has Finite State Machine" msgstr "Має вбудований кінцевий автомат" -#: ../../../README.rst:70 +#: ../../../README.rst:59 msgid "" "Uses powerful `magic filters " -"`" +"`_" msgstr "" -#: ../../../README.rst:71 +#: ../../../README.rst:60 msgid "Middlewares (incoming updates and API calls)" msgstr "" "Підтримує мідлвари (для вхідних подій від АПІ та для вихідних запитів до " "АПІ)" -#: ../../../README.rst:72 +#: ../../../README.rst:61 msgid "" "Provides `Replies into Webhook `_" @@ -175,13 +155,13 @@ msgstr "" "`_" -#: ../../../README.rst:73 +#: ../../../README.rst:62 msgid "Integrated I18n/L10n support with GNU Gettext (or Fluent)" msgstr "" "Має вбудовану інтеграцію для використання інтернаціоналізації та " "локалізації GNU Gettext (або Fluent)" -#: ../../../README.rst:78 +#: ../../../README.rst:67 msgid "" "It is strongly advised that you have prior experience working with " "`asyncio `_ before " @@ -191,39 +171,39 @@ msgstr "" "починати використовувати цей фреймворк. `asyncio " "`_" -#: ../../../README.rst:82 +#: ../../../README.rst:71 msgid "If you have any questions, you can visit our community chats on Telegram:" msgstr "Якщо є якість додаткові запитання, ласкаво просимо до онлайн-спільнот:" -#: ../../../README.rst:84 +#: ../../../README.rst:73 msgid "🇺🇸 `@aiogram `_" msgstr "" -#: ../../../README.rst:85 +#: ../../../README.rst:74 msgid "🇺🇦 `@aiogramua `_" msgstr "" -#: ../../../README.rst:86 +#: ../../../README.rst:75 msgid "🇺🇿 `@aiogram_uz `_" msgstr "" -#: ../../../README.rst:87 +#: ../../../README.rst:76 msgid "🇰🇿 `@aiogram_kz `_" msgstr "" -#: ../../../README.rst:88 +#: ../../../README.rst:77 msgid "🇷🇺 `@aiogram_ru `_" msgstr "💩 `@aiogram_ru `_" -#: ../../../README.rst:89 +#: ../../../README.rst:78 msgid "🇮🇷 `@aiogram_fa `_" msgstr "" -#: ../../../README.rst:90 +#: ../../../README.rst:79 msgid "🇮🇹 `@aiogram_it `_" msgstr "" -#: ../../../README.rst:91 +#: ../../../README.rst:80 msgid "🇧🇷 `@aiogram_br `_" msgstr "" @@ -234,6 +214,3 @@ msgstr "Приклад використання" #: ../../index.rst:9 msgid "Contents" msgstr "Зміст" - -#~ msgid "[Telegram] aiogram live" -#~ msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/install.po b/docs/locale/uk_UA/LC_MESSAGES/install.po index 7ebb418e..438b02d4 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/install.po +++ b/docs/locale/uk_UA/LC_MESSAGES/install.po @@ -5,43 +5,36 @@ # msgid "" msgstr "" -"Project-Id-Version: aiogram\n" +"Project-Id-Version: aiogram\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" "PO-Revision-Date: 2022-10-14 00:10+0300\n" "Last-Translator: \n" -"Language-Team: \n" "Language: uk_UA\n" +"Language-Team: \n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.1.1\n" +"Generated-By: Babel 2.12.1\n" #: ../../install.rst:3 msgid "Installation" msgstr "Встановлення" -#: ../../install.rst:6 -msgid "Stable (2.x)" -msgstr "Стабільна версія (2.x)" - -#: ../../install.rst:9 ../../install.rst:26 +#: ../../install.rst:6 ../../install.rst:23 msgid "From PyPI" msgstr "З PyPI" -#: ../../install.rst:16 +#: ../../install.rst:13 msgid "From Arch Linux Repository" msgstr "З репозиторію Arch Linux" -#: ../../install.rst:23 +#: ../../install.rst:20 msgid "Development build (3.x)" msgstr "Бета-версія (3.х)" -#: ../../install.rst:33 +#: ../../install.rst:30 msgid "From GitHub" msgstr "З GitHub" - -#: ../../install.rst:40 -msgid "From AUR" -msgstr "З AUR" diff --git a/docs/locale/uk_UA/LC_MESSAGES/migration_2_to_3.po b/docs/locale/uk_UA/LC_MESSAGES/migration_2_to_3.po new file mode 100644 index 00000000..2ffb754f --- /dev/null +++ b/docs/locale/uk_UA/LC_MESSAGES/migration_2_to_3.po @@ -0,0 +1,446 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2023, aiogram Team +# This file is distributed under the same license as the aiogram package. +# FIRST AUTHOR , 2023. +# +msgid "" +msgstr "" +"Project-Id-Version: aiogram\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-08 19:04+0300\n" +"PO-Revision-Date: 2023-09-14 18:34+0300\n" +"Last-Translator: \n" +"Language: uk_UA\n" +"Language-Team: \n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.12.1\n" + +#: ../../migration_2_to_3.rst:3 +msgid "Migration FAQ (2.x -> 3.0)" +msgstr "FAQ по переходу з версії 2.x на 3.0" + +#: ../../migration_2_to_3.rst:7 +msgid "This guide is still in progress." +msgstr "Цей посібник все ще в розробці." + +#: ../../migration_2_to_3.rst:9 +msgid "" +"This version introduces numerous breaking changes and architectural " +"improvements. It helps reduce the count of global variables in your code," +" provides useful mechanisms to modularize your code, and enables the " +"creation of shareable modules via packages on PyPI. It also makes " +"middlewares and filters more controllable, among other improvements." +msgstr "" +"Ця версія містить численні суттєві зміни та архітектурні покращення. Вона" +" допомагає зменшити кількість глобальних змінних у вашому коді, надає " +"корисні механізми для модуляризації вашого коду та дозволяє створювати " +"спільні модулі за допомогою пакетів на PyPI. Крім того, серед інших " +"покращень, він робить проміжне програмне забезпечення (мідлварі) та " +"фільтри більш контрольованими." + +#: ../../migration_2_to_3.rst:15 +msgid "" +"On this page, you can read about the changes made in relation to the last" +" stable 2.x version." +msgstr "" +"На цій сторінці ви можете прочитати про зміни, внесені в останню " +"стабільну версію 2.x." + +#: ../../migration_2_to_3.rst:19 +msgid "" +"This page more closely resembles a detailed changelog than a migration " +"guide, but it will be updated in the future." +msgstr "" +"Ця сторінка більше нагадує детальний список змін, ніж посібник з " +"міграції, але вона буде оновлюватися в майбутньому." + +#: ../../migration_2_to_3.rst:22 +msgid "" +"Feel free to contribute to this page, if you find something that is not " +"mentioned here." +msgstr "" +"Не соромтеся зробити свій внесок у цю сторінку, якщо ви знайшли щось, про" +" що тут не згадано." + +#: ../../migration_2_to_3.rst:26 +msgid "Dispatcher" +msgstr "" + +#: ../../migration_2_to_3.rst:28 +msgid "" +"The :class:`Dispatcher` class no longer accepts a `Bot` instance in its " +"initializer. Instead, the `Bot` instance should be passed to the " +"dispatcher only for starting polling or handling events from webhooks. " +"This approach also allows for the use of multiple bot instances " +"simultaneously (\"multibot\")." +msgstr "" +"Клас :class:`Dispatcher` більше не приймає екземпляр `Bot` у своєму " +"ініціалізаторі. Замість цього екземпляр `Bot` слід передавати диспетчеру " +"тільки для запуску полінгу або обробки подій з вебхуків. Такий підхід " +"також дозволяє використовувати декілька екземплярів бота одночасно " +"(\"мультибот\")." + +#: ../../migration_2_to_3.rst:32 +msgid "" +":class:`Dispatcher` now can be extended with another Dispatcher-like " +"thing named :class:`Router` (:ref:`Read more » `)." +msgstr "" +"Клас :class:`Dispatcher` тепер можна розширити ще одним об'єктом на " +"кшталт диспетчера з назвою :class:`Router` (:ref:`Детальніше » `)." + +#: ../../migration_2_to_3.rst:34 +msgid "" +"With routes, you can easily modularize your code and potentially share " +"these modules between projects." +msgstr "" +"За допомогою роутерів ви можете легко модулювати свій код і потенційно " +"перевикористовувати ці модулі між проектами." + +#: ../../migration_2_to_3.rst:35 +msgid "" +"Removed the **_handler** suffix from all event handler decorators and " +"registering methods. (:ref:`Read more » `)" +msgstr "" +"Видалено суфікс **_handler** з усіх декораторів обробників подій та " +"методів реєстрації. (:ref:`Детальніше » `)" + +#: ../../migration_2_to_3.rst:37 +#, fuzzy +msgid "" +"The Executor has been entirely removed; you can now use the Dispatcher " +"directly to start poll the API or handle webhooks from it." +msgstr "" +"Executor було повністю вилучено; тепер ви можете використовувати " +"Dispatcher безпосередньо для запуску полінгу або обробки вебхуків." + +#: ../../migration_2_to_3.rst:38 +msgid "" +"The throttling method has been completely removed; you can now use " +"middlewares to control the execution context and implement any throttling" +" mechanism you desire." +msgstr "" +"Метод дроселювання (Throttling) повністю вилучено; тепер ви можете " +"використовувати проміжне програмне забезпечення (middleware) для " +"керування контекстом виконання та реалізовувати будь-який механізм " +"дроселювання за вашим бажанням." + +#: ../../migration_2_to_3.rst:40 +msgid "" +"Removed global context variables from the API types, Bot and Dispatcher " +"object, From now on, if you want to access the current bot instance " +"within handlers or filters, you should accept the argument :code:`bot: " +"Bot` and use it instead of :code:`Bot.get_current()`. In middlewares, it " +"can be accessed via :code:`data[\"bot\"]`." +msgstr "" +"Вилучено глобальні контекстні змінні з типів API, об'єктів Bot та " +"Dispatcher, Відтепер, якщо ви хочете отримати доступ до поточного " +"екземпляру бота в обробниках або фільтрах, ви повинні приймати аргумент " +":code:`bot: Bot` і використовувати його замість " +":code:`Bot.get_current()`. У проміжному програмному забезпеченні " +"(middleware) доступ до нього можна отримати через :code:`data[\"bot\"]`." + +#: ../../migration_2_to_3.rst:44 +msgid "" +"To skip pending updates, you should now call the " +":class:`aiogram.methods.delete_webhook.DeleteWebhook` method directly, " +"rather than passing :code:`skip_updates=True` to the start polling " +"method." +msgstr "" +"Щоб пропустити очікувані оновлення, тепер вам слід викликати метод " +":class:`aiogram.methods.delete_webhook.DeleteWebhook` безпосередньо, а не" +" передавати :code:`skip_updates=True` до методу запуску полінгу." + +#: ../../migration_2_to_3.rst:49 +msgid "Filtering events" +msgstr "Фільтрація подій" + +#: ../../migration_2_to_3.rst:51 +msgid "" +"Keyword filters can no longer be used; use filters explicitly. (`Read " +"more » `_)" +msgstr "" +"Фільтри за ключовими словами більше не можна використовувати; " +"використовуйте фільтри явно. (`Детальніше » " +"`_)" + +#: ../../migration_2_to_3.rst:52 +msgid "" +"Due to the removal of keyword filters, all previously enabled-by-default " +"filters (such as state and content_type) are now disabled. You must " +"specify them explicitly if you wish to use them. For example instead of " +"using :code:`@dp.message_handler(content_types=ContentType.PHOTO)` you " +"should use :code:`@router.message(F.photo)`" +msgstr "" +"У зв'язку з вилученням keyword фільтрів, всі раніше ввімкнені за " +"замовчуванням фільтри (такі як state і content_type) тепер вимкнено. Якщо" +" ви бажаєте їх використовувати, ви повинні вказати їх явно. Наприклад, " +"замість :code:`@dp.message_handler(content_types=ContentType.PHOTO)` слід" +" використовувати :code:`@router.message(F.photo)`." + +#: ../../migration_2_to_3.rst:57 +#, fuzzy +msgid "" +"Most common filters have been replaced with the \"magic filter.\" " +"(:ref:`Read more » `)" +msgstr "" +"Більшість звичайних фільтрів було замінено на \"магічний фільтр\". " +"(:ref:`Детальніше далі » `)" + +#: ../../migration_2_to_3.rst:58 +msgid "" +"By default, the message handler now receives any content type. If you " +"want a specific one, simply add the appropriate filters (Magic or any " +"other)." +msgstr "" +"За замовчуванням обробник повідомлень тепер отримує будь-який тип вмісту." +" Якщо вам потрібен певний тип, просто додайте відповідні фільтри (Magic " +"або будь-який інший)." + +#: ../../migration_2_to_3.rst:60 +msgid "" +"The state filter is no longer enabled by default. This means that if you " +"used :code:`state=\"*\"` in v2, you should not pass any state filter in " +"v3. Conversely, if the state was not specified in v2, you will now need " +"to specify it in v3." +msgstr "" +"Фільтр стану більше не вмикається за замовчуванням. Це означає, що якщо " +"ви використовували :code:`state=\"*\"` у v2, вам не слід передавати " +"фільтр стану у v3. І навпаки, якщо стан не було вказано у v2, вам " +"потрібно буде вказати його у v3." + +#: ../../migration_2_to_3.rst:63 +msgid "" +"Added the possibility to register global filters for each router, which " +"helps to reduce code repetition and provides an easier way to control the" +" purpose of each router." +msgstr "" +"Додано можливість реєстрації глобальних фільтрів для кожного роутера, що " +"допомагає зменшити повторення коду і полегшує контроль призначення " +"кожного роутера." + +#: ../../migration_2_to_3.rst:69 +msgid "Bot API" +msgstr "" + +#: ../../migration_2_to_3.rst:71 +msgid "" +"All API methods are now classes with validation, implemented via " +"`pydantic `. These API calls are also " +"available as methods in the Bot class." +msgstr "" +"Всі методи API тепер є класами з валідацією, реалізованими через " +"`pydantic `. Ці виклики API також доступні як" +" методи в класі Bot." + +#: ../../migration_2_to_3.rst:74 +msgid "" +"More pre-defined Enums have been added and moved to the `aiogram.enums` " +"sub-package. For example, the chat type enum is now " +":class:`aiogram.enums.ChatType` instead of " +":class:`aiogram.types.chat.ChatType`." +msgstr "" +"Додано більше попередньо визначених enums та переміщено їх до підпакету " +"`aiogram.enums`. Наприклад, enum типу чату тепер має вигляд " +":class:`aiogram.enums.ChatType` замість " +":class:`aiogram.types.chat.ChatType`." + +#: ../../migration_2_to_3.rst:76 +msgid "" +"The HTTP client session has been separated into a container that can be " +"reused across different Bot instances within the application." +msgstr "" +"Клієнтська сесія HTTP була відокремлена в контейнер, який можна повторно " +"використовувати для різних екземплярів бота в додатку." + +#: ../../migration_2_to_3.rst:78 +msgid "" +"API Exceptions are no longer classified by specific messages, as Telegram" +" has no documented error codes. However, all errors are classified by " +"HTTP status codes, and for each method, only one type of error can be " +"associated with a given code. Therefore, in most cases, you should check " +"only the error type (by status code) without inspecting the error " +"message." +msgstr "" +"Виключення API більше не класифікуються за конкретними повідомленнями, " +"оскільки Telegram не має задокументованих кодів помилок. Проте всі " +"помилки класифікуються за кодами статусу HTTP, і для кожного методу з " +"певним кодом може бути пов'язаний лише один тип помилки. Тому в більшості" +" випадків слід перевіряти лише тип помилки (за кодом статусу), не " +"перевіряючи повідомлення про помилку." + +#: ../../migration_2_to_3.rst:88 +msgid "Middlewares" +msgstr "Проміжне ПО (Middlewares)" + +#: ../../migration_2_to_3.rst:90 +msgid "" +"Middlewares can now control an execution context, e.g., using context " +"managers. (:ref:`Read more » `)" +msgstr "" +"Проміжне програмне забезпечення тепер може керувати контекстом виконання," +" наприклад, за допомогою менеджерів контексту. (:ref:`Детальніше » " +"`)" + +#: ../../migration_2_to_3.rst:92 +msgid "" +"All contextual data is now shared end-to-end between middlewares, " +"filters, and handlers. For example now you can easily pass some data into" +" context inside middleware and get it in the filters layer as the same " +"way as in the handlers via keyword arguments." +msgstr "" +"Всі контекстні дані тепер наскрізно використовуються між проміжним " +"програмним забезпеченням, фільтрами та обробниками. Наприклад, тепер ви " +"можете легко передати деякі дані в контекст у проміжному програмному " +"забезпеченні і отримати їх у шарі фільтрів так само, як і в обробниках " +"через аргументи ключових слів." + +#: ../../migration_2_to_3.rst:95 +msgid "" +"Added a mechanism named **flags** that helps customize handler behavior " +"in conjunction with middlewares. (:ref:`Read more » `)" +msgstr "" +"Додано механізм з назвою **flags**, який допомагає налаштовувати " +"поведінку обробника у поєднанні з проміжним програмним забезпеченням. " +"(:ref:`Детальніше про » `)" + +#: ../../migration_2_to_3.rst:100 +msgid "Keyboard Markup" +msgstr "Розмітка клавіатури" + +#: ../../migration_2_to_3.rst:102 +msgid "" +"Now :class:`aiogram.types.inline_keyboard_markup.InlineKeyboardMarkup` " +"and :class:`aiogram.types.reply_keyboard_markup.ReplyKeyboardMarkup` no " +"longer have methods for extension, instead you have to use markup " +"builders :class:`aiogram.utils.keyboard.ReplyKeyboardBuilder` and " +":class:`aiogram.utils.keyboard.KeyboardBuilder` respectively (:ref:`Read " +"more » `)" +msgstr "" +"Тепер :class:`aiogram.types.inline_keyboard_markup.InlineKeyboardMarkup` " +"та :class:`aiogram.types.reply_keyboard_markup.ReplyKeyboardMarkup` " +"більше не мають методів для розширення, натомість вам слід " +"використовувати будівники розмітки " +":class:`aiogram.utils.keyboard.ReplyKeyboardBuilder` та " +":class:`aiogram.utils.keyboard.InlineKeyboardBuilder` відповідно " +"(:ref:`Детальніше » `)" + +#: ../../migration_2_to_3.rst:110 +msgid "Callbacks data" +msgstr "" + +#: ../../migration_2_to_3.rst:112 +msgid "" +"The callback data factory is now strictly typed using `pydantic " +"`_ models. (:ref:`Read more » `)" +msgstr "" +"Фабрику даних зворотного виклику тепер строго типізовано за допомогою " +"моделей `pydantic `_. (:ref:`Детальніше » " +"`)" + +#: ../../migration_2_to_3.rst:117 +msgid "Finite State machine" +msgstr "Скінченний автомат" + +#: ../../migration_2_to_3.rst:119 +msgid "" +"State filters will no longer be automatically added to all handlers; you " +"will need to specify the state if you want to use it." +msgstr "" +"Фільтри станів більше не будуть автоматично додаватися до всіх " +"обробників; вам потрібно буде вказати стан, якщо ви хочете його " +"використати." + +#: ../../migration_2_to_3.rst:121 +msgid "" +"Added the possibility to change the FSM strategy. For example, if you " +"want to control the state for each user based on chat topics rather than " +"the user in a chat, you can specify this in the Dispatcher." +msgstr "" +"Додано можливість змінювати стратегію FSM. Наприклад, якщо ви хочете " +"контролювати стан для кожного користувача на основі топіків чату, а не " +"користувача в чаті, ви можете вказати це в Диспетчері." + +#: ../../migration_2_to_3.rst:124 +msgid "" +"Now :class:`aiogram.fsm.state.State` and " +":class:`aiogram.fsm.state.StateGroup` don't have helper methods like " +":code:`.set()`, :code:`.next()`, etc." +msgstr "" +"Тепер :class:`aiogram.fsm.state.State` та " +":class:`aiogram.fsm.state.StateGroup` не мають допоміжних методів, таких " +"як :code:`.set()`, :code:`.next()` тощо." + +#: ../../migration_2_to_3.rst:127 +msgid "" +"Instead, you should set states by passing them directly to " +":class:`aiogram.fsm.context.FSMContext` (:ref:`Read more » `)" +msgstr "" +"Замість цього вам слід встановлювати стани, передаючи їх безпосередньо до" +" :class:`aiogram.fsm.context.FSMContext` (:ref:`Детальніше » `)" + +#: ../../migration_2_to_3.rst:129 +msgid "" +"The state proxy is deprecated; you should update the state data by " +"calling :code:`state.set_data(...)` and :code:`state.get_data()` " +"respectively." +msgstr "" +"Проксі стану є застарілим; вам слід оновити дані стану, викликавши " +":code:`state.set_data(...)` та :code:`state.get_data()` відповідно." + +#: ../../migration_2_to_3.rst:134 +msgid "Sending Files" +msgstr "Надсилання файлів" + +#: ../../migration_2_to_3.rst:136 +msgid "" +"From now on, you should wrap files in an InputFile object before sending " +"them, instead of passing the IO object directly to the API method. " +"(:ref:`Read more » `)" +msgstr "" +"Відтепер перед відправкою файлів слід обертати їх в об'єкт InputFile " +"замість того, щоб передавати об'єкт вводу-виводу безпосередньо до методу " +"API. (:ref:`Детальніше » `)" + +#: ../../migration_2_to_3.rst:141 +msgid "Webhook" +msgstr "" + +#: ../../migration_2_to_3.rst:143 +msgid "The aiohttp web app configuration has been simplified." +msgstr "Спрощено налаштування веб-застосунку aiohttp." + +#: ../../migration_2_to_3.rst:144 +msgid "" +"By default, the ability to upload files has been added when you `make " +"requests in response to updates `_ (available for webhook " +"only)." +msgstr "" + +#: ../../migration_2_to_3.rst:148 +msgid "Telegram API Server" +msgstr "Сервер Telegram API" + +#: ../../migration_2_to_3.rst:150 +msgid "" +"The `server` parameter has been moved from the `Bot` instance to `api` in" +" `BaseSession`." +msgstr "" +"Параметр `server` було перенесено з екземпляра `Bot` до `api` в " +"`BaseSession`." + +#: ../../migration_2_to_3.rst:151 +msgid "" +"The constant `aiogram.bot.api.TELEGRAM_PRODUCTION` has been moved to " +"`aiogram.client.telegram.PRODUCTION`." +msgstr "" +"Константа `aiogram.bot.api.TELEGRAM_PRODUCTION` була переміщена на " +"`aiogram.client.telegram.PRODUCTION`." diff --git a/docs/locale/uk_UA/LC_MESSAGES/utils/chat_action.po b/docs/locale/uk_UA/LC_MESSAGES/utils/chat_action.po index 512202ee..46ab594b 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/utils/chat_action.po +++ b/docs/locale/uk_UA/LC_MESSAGES/utils/chat_action.po @@ -5,17 +5,16 @@ # msgid "" msgstr "" -"Project-Id-Version: aiogram\n" +"Project-Id-Version: aiogram\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" "PO-Revision-Date: 2022-10-13 21:22+0300\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.1.1\n" +"Generated-By: Babel 2.12.1\n" #: ../../utils/chat_action.rst:3 msgid "Chat action sender" @@ -27,13 +26,13 @@ msgstr "Відправник" #: aiogram.utils.chat_action.ChatActionSender:1 of msgid "" -"This utility helps to automatically send chat action until long actions is " -"done to take acknowledge bot users the bot is doing something and not " +"This utility helps to automatically send chat action until long actions " +"is done to take acknowledge bot users the bot is doing something and not " "crashed." msgstr "" -"Ця утиліта допомагає автоматично надсилати дії чату, допоки виконуються тривалі дії боттом," -"щоб повідомити користувачів бота про те що бот щось робить і не " -"завершив роботу аварійно." +"Ця утиліта допомагає автоматично надсилати дії чату, допоки виконуються " +"тривалі дії боттом,щоб повідомити користувачів бота про те що бот щось " +"робить і не завершив роботу аварійно." #: aiogram.utils.chat_action.ChatActionSender:4 of msgid "Provides simply to use context manager." @@ -42,37 +41,37 @@ msgstr "Надає простий для використання контекс #: aiogram.utils.chat_action.ChatActionSender:6 of msgid "" "Technically sender start background task with infinity loop which works " -"until action will be finished and sends the `chat action `_ every 5 seconds." +"until action will be finished and sends the `chat action " +"`_ every 5 seconds." msgstr "" "Технічно, відправник запускає фонову завдачу з нескінченним циклом, який " -"працює до завершення дії та надсилає `дію чату `_ кожні 5 секунд." +"працює до завершення дії та надсилає `дію чату " +"`_ кожні 5 секунд." #: aiogram.utils.chat_action.ChatActionSender.__init__ of msgid "Parameters" msgstr "Параметри" #: aiogram.utils.chat_action.ChatActionSender.__init__:1 of +msgid "instance of the bot" +msgstr "екземпляр бота, необов'язковий параметр" + +#: aiogram.utils.chat_action.ChatActionSender.__init__:2 of msgid "target chat id" msgstr "ідентифікатор цільового чату" -#: aiogram.utils.chat_action.ChatActionSender.__init__:2 of +#: aiogram.utils.chat_action.ChatActionSender.__init__:3 of msgid "chat action type" msgstr "тип дії" -#: aiogram.utils.chat_action.ChatActionSender.__init__:3 of +#: aiogram.utils.chat_action.ChatActionSender.__init__:4 of msgid "interval between iterations" msgstr "інтервал між ітераціями" -#: aiogram.utils.chat_action.ChatActionSender.__init__:4 of +#: aiogram.utils.chat_action.ChatActionSender.__init__:5 of msgid "sleep before first iteration" msgstr "затримка перед першою ітерацією" -#: aiogram.utils.chat_action.ChatActionSender.__init__:5 of -msgid "instance of the bot, can be omitted from the context" -msgstr "екземпляр бота, необов'язковий параметр" - #: aiogram.utils.chat_action.ChatActionSender.choose_sticker:1 of msgid "Create instance of the sender with `choose_sticker` action" msgstr "Створення екземпляру відправника з дією `choose_sticker` " @@ -137,8 +136,8 @@ msgstr "Перед використанням слід зареєструват #: ../../utils/chat_action.rst:37 msgid "" -"After this action all handlers which works longer than `initial_sleep` will " -"produce the '`typing`' chat action." +"After this action all handlers which works longer than `initial_sleep` " +"will produce the '`typing`' chat action." msgstr "" "Після цього всі обробники, що працюють довше за `initial_sleep`, " "виконуватимуть дію '`typing`' чату" diff --git a/docs/locale/uk_UA/LC_MESSAGES/utils/formatting.po b/docs/locale/uk_UA/LC_MESSAGES/utils/formatting.po new file mode 100644 index 00000000..a61c73e0 --- /dev/null +++ b/docs/locale/uk_UA/LC_MESSAGES/utils/formatting.po @@ -0,0 +1,443 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2023, aiogram Team +# This file is distributed under the same license as the aiogram package. +# FIRST AUTHOR , 2023. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: aiogram \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.12.1\n" + +#: ../../utils/formatting.rst:5 +msgid "Formatting" +msgstr "" + +#: ../../utils/formatting.rst:7 +msgid "Make your message formatting flexible and simple" +msgstr "" + +#: ../../utils/formatting.rst:9 +msgid "" +"This instrument works on top of Message entities instead of using HTML or" +" Markdown markups, you can easily construct your message and sent it to " +"the Telegram without the need to remember tag parity (opening and " +"closing) or escaping user input." +msgstr "" + +#: ../../utils/formatting.rst:14 +msgid "Usage" +msgstr "" + +#: ../../utils/formatting.rst:17 +msgid "Basic scenario" +msgstr "" + +#: ../../utils/formatting.rst:19 +msgid "Construct your message and send it to the Telegram." +msgstr "" + +#: ../../utils/formatting.rst:26 +msgid "Is the same as the next example, but without usage markup" +msgstr "" + +#: ../../utils/formatting.rst:35 +msgid "" +"Literally when you execute :code:`as_kwargs` method the Text object is " +"converted into text :code:`Hello, Alex!` with entities list " +":code:`[MessageEntity(type='bold', offset=7, length=4)]` and passed into " +"dict which can be used as :code:`**kwargs` in API call." +msgstr "" + +#: ../../utils/formatting.rst:39 +msgid "" +"The complete list of elements is listed `on this page below <#available-" +"elements>`_." +msgstr "" + +#: ../../utils/formatting.rst:42 +msgid "Advanced scenario" +msgstr "" + +#: ../../utils/formatting.rst:44 +msgid "" +"On top of base elements can be implemented content rendering structures, " +"so, out of the box aiogram has a few already implemented functions that " +"helps you to format your messages:" +msgstr "" + +#: aiogram.utils.formatting.as_line:1 of +msgid "Wrap multiple nodes into line with :code:`\\\\n` at the end of line." +msgstr "" + +#: aiogram.utils.formatting.Text.as_kwargs +#: aiogram.utils.formatting.as_key_value aiogram.utils.formatting.as_line +#: aiogram.utils.formatting.as_list aiogram.utils.formatting.as_marked_list +#: aiogram.utils.formatting.as_marked_section +#: aiogram.utils.formatting.as_numbered_list +#: aiogram.utils.formatting.as_numbered_section +#: aiogram.utils.formatting.as_section of +msgid "Parameters" +msgstr "" + +#: aiogram.utils.formatting.as_line:3 of +msgid "Text or Any" +msgstr "" + +#: aiogram.utils.formatting.as_line:4 of +msgid "ending of the line, by default is :code:`\\\\n`" +msgstr "" + +#: aiogram.utils.formatting.as_line:5 of +msgid "separator between items, by default is empty string" +msgstr "" + +#: aiogram.utils.formatting.Text.as_kwargs aiogram.utils.formatting.Text.render +#: aiogram.utils.formatting.as_key_value aiogram.utils.formatting.as_line +#: aiogram.utils.formatting.as_list aiogram.utils.formatting.as_marked_list +#: aiogram.utils.formatting.as_marked_section +#: aiogram.utils.formatting.as_numbered_list +#: aiogram.utils.formatting.as_numbered_section +#: aiogram.utils.formatting.as_section of +msgid "Returns" +msgstr "" + +#: aiogram.utils.formatting.as_key_value:5 aiogram.utils.formatting.as_line:6 +#: aiogram.utils.formatting.as_marked_list:5 +#: aiogram.utils.formatting.as_numbered_list:6 +#: aiogram.utils.formatting.as_section:5 of +msgid "Text" +msgstr "" + +#: aiogram.utils.formatting.as_list:1 of +msgid "Wrap each element to separated lines" +msgstr "" + +#: aiogram.utils.formatting.as_marked_list:1 of +msgid "Wrap elements as marked list" +msgstr "" + +#: aiogram.utils.formatting.as_marked_list:4 of +msgid "line marker, by default is '- '" +msgstr "" + +#: aiogram.utils.formatting.as_numbered_list:1 of +msgid "Wrap elements as numbered list" +msgstr "" + +#: aiogram.utils.formatting.as_numbered_list:4 of +msgid "initial number, by default 1" +msgstr "" + +#: aiogram.utils.formatting.as_numbered_list:5 of +msgid "number format, by default '{}. '" +msgstr "" + +#: aiogram.utils.formatting.as_section:1 of +msgid "Wrap elements as simple section, section has title and body" +msgstr "" + +#: aiogram.utils.formatting.as_marked_section:1 of +msgid "Wrap elements as section with marked list" +msgstr "" + +#: aiogram.utils.formatting.as_numbered_section:1 of +msgid "Wrap elements as section with numbered list" +msgstr "" + +#: aiogram.utils.formatting.as_key_value:1 of +msgid "Wrap elements pair as key-value line. (:code:`{key}: {value}`)" +msgstr "" + +#: ../../utils/formatting.rst:64 +msgid "and lets complete them all:" +msgstr "" + +#: ../../utils/formatting.rst:92 +msgid "Will be rendered into:" +msgstr "" + +#: ../../utils/formatting.rst:94 +msgid "**Success:**" +msgstr "" + +#: ../../utils/formatting.rst:96 +msgid "✅ Test 1" +msgstr "" + +#: ../../utils/formatting.rst:98 +msgid "✅ Test 3" +msgstr "" + +#: ../../utils/formatting.rst:100 +msgid "✅ Test 4" +msgstr "" + +#: ../../utils/formatting.rst:102 +msgid "**Failed:**" +msgstr "" + +#: ../../utils/formatting.rst:104 +msgid "❌ Test 2" +msgstr "" + +#: ../../utils/formatting.rst:106 +msgid "**Summary:**" +msgstr "" + +#: ../../utils/formatting.rst:108 +msgid "**Total**: 4" +msgstr "" + +#: ../../utils/formatting.rst:110 +msgid "**Success**: 3" +msgstr "" + +#: ../../utils/formatting.rst:112 +msgid "**Failed**: 1" +msgstr "" + +#: ../../utils/formatting.rst:114 +msgid "#test" +msgstr "" + +#: ../../utils/formatting.rst:117 +msgid "Or as HTML:" +msgstr "" + +#: ../../utils/formatting.rst:137 +msgid "Available methods" +msgstr "" + +#: aiogram.utils.formatting.Text:1 of +msgid "Bases: :py:class:`~typing.Iterable`\\ [:py:obj:`~typing.Any`]" +msgstr "" + +#: aiogram.utils.formatting.Text:1 of +msgid "Simple text element" +msgstr "" + +#: aiogram.utils.formatting.Text.render:1 of +msgid "Render elements tree as text with entities list" +msgstr "" + +#: aiogram.utils.formatting.Text.as_kwargs:1 of +msgid "" +"Render elements tree as keyword arguments for usage in the API call, for " +"example:" +msgstr "" + +#: aiogram.utils.formatting.Text.as_html:1 of +msgid "Render elements tree as HTML markup" +msgstr "" + +#: aiogram.utils.formatting.Text.as_markdown:1 of +msgid "Render elements tree as MarkdownV2 markup" +msgstr "" + +#: ../../utils/formatting.rst:147 +msgid "Available elements" +msgstr "" + +#: aiogram.utils.formatting.Bold:1 aiogram.utils.formatting.BotCommand:1 +#: aiogram.utils.formatting.CashTag:1 aiogram.utils.formatting.Code:1 +#: aiogram.utils.formatting.CustomEmoji:1 aiogram.utils.formatting.Email:1 +#: aiogram.utils.formatting.HashTag:1 aiogram.utils.formatting.Italic:1 +#: aiogram.utils.formatting.PhoneNumber:1 aiogram.utils.formatting.Pre:1 +#: aiogram.utils.formatting.Spoiler:1 aiogram.utils.formatting.Strikethrough:1 +#: aiogram.utils.formatting.TextLink:1 aiogram.utils.formatting.TextMention:1 +#: aiogram.utils.formatting.Underline:1 aiogram.utils.formatting.Url:1 of +msgid "Bases: :py:class:`~aiogram.utils.formatting.Text`" +msgstr "" + +#: aiogram.utils.formatting.HashTag:1 of +msgid "Hashtag element." +msgstr "" + +#: aiogram.utils.formatting.HashTag:5 of +msgid "The value should always start with '#' symbol" +msgstr "" + +#: aiogram.utils.formatting.HashTag:7 of +msgid "" +"Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` " +"with type " +":obj:`aiogram.enums.message_entity_type.MessageEntityType.HASHTAG`" +msgstr "" + +#: aiogram.utils.formatting.CashTag:1 of +msgid "Cashtag element." +msgstr "" + +#: aiogram.utils.formatting.CashTag:5 of +msgid "The value should always start with '$' symbol" +msgstr "" + +#: aiogram.utils.formatting.CashTag:7 of +msgid "" +"Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` " +"with type " +":obj:`aiogram.enums.message_entity_type.MessageEntityType.CASHTAG`" +msgstr "" + +#: aiogram.utils.formatting.BotCommand:1 of +msgid "Bot command element." +msgstr "" + +#: aiogram.utils.formatting.BotCommand:5 of +msgid "The value should always start with '/' symbol" +msgstr "" + +#: aiogram.utils.formatting.BotCommand:7 of +msgid "" +"Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` " +"with type " +":obj:`aiogram.enums.message_entity_type.MessageEntityType.BOT_COMMAND`" +msgstr "" + +#: aiogram.utils.formatting.Url:1 of +msgid "Url element." +msgstr "" + +#: aiogram.utils.formatting.Url:3 of +msgid "" +"Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` " +"with type :obj:`aiogram.enums.message_entity_type.MessageEntityType.URL`" +msgstr "" + +#: aiogram.utils.formatting.Email:1 of +msgid "Email element." +msgstr "" + +#: aiogram.utils.formatting.Email:3 of +msgid "" +"Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` " +"with type " +":obj:`aiogram.enums.message_entity_type.MessageEntityType.EMAIL`" +msgstr "" + +#: aiogram.utils.formatting.PhoneNumber:1 of +msgid "Phone number element." +msgstr "" + +#: aiogram.utils.formatting.PhoneNumber:3 of +msgid "" +"Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` " +"with type " +":obj:`aiogram.enums.message_entity_type.MessageEntityType.PHONE_NUMBER`" +msgstr "" + +#: aiogram.utils.formatting.Bold:1 of +msgid "Bold element." +msgstr "" + +#: aiogram.utils.formatting.Bold:3 of +msgid "" +"Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` " +"with type :obj:`aiogram.enums.message_entity_type.MessageEntityType.BOLD`" +msgstr "" + +#: aiogram.utils.formatting.Italic:1 of +msgid "Italic element." +msgstr "" + +#: aiogram.utils.formatting.Italic:3 of +msgid "" +"Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` " +"with type " +":obj:`aiogram.enums.message_entity_type.MessageEntityType.ITALIC`" +msgstr "" + +#: aiogram.utils.formatting.Underline:1 of +msgid "Underline element." +msgstr "" + +#: aiogram.utils.formatting.Underline:3 of +msgid "" +"Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` " +"with type " +":obj:`aiogram.enums.message_entity_type.MessageEntityType.UNDERLINE`" +msgstr "" + +#: aiogram.utils.formatting.Strikethrough:1 of +msgid "Strikethrough element." +msgstr "" + +#: aiogram.utils.formatting.Strikethrough:3 of +msgid "" +"Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` " +"with type " +":obj:`aiogram.enums.message_entity_type.MessageEntityType.STRIKETHROUGH`" +msgstr "" + +#: aiogram.utils.formatting.Spoiler:1 of +msgid "Spoiler element." +msgstr "" + +#: aiogram.utils.formatting.Spoiler:3 of +msgid "" +"Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` " +"with type " +":obj:`aiogram.enums.message_entity_type.MessageEntityType.SPOILER`" +msgstr "" + +#: aiogram.utils.formatting.Code:1 of +msgid "Code element." +msgstr "" + +#: aiogram.utils.formatting.Code:3 of +msgid "" +"Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` " +"with type :obj:`aiogram.enums.message_entity_type.MessageEntityType.CODE`" +msgstr "" + +#: aiogram.utils.formatting.Pre:1 of +msgid "Pre element." +msgstr "" + +#: aiogram.utils.formatting.Pre:3 of +msgid "" +"Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` " +"with type :obj:`aiogram.enums.message_entity_type.MessageEntityType.PRE`" +msgstr "" + +#: aiogram.utils.formatting.TextLink:1 of +msgid "Text link element." +msgstr "" + +#: aiogram.utils.formatting.TextLink:3 of +msgid "" +"Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` " +"with type " +":obj:`aiogram.enums.message_entity_type.MessageEntityType.TEXT_LINK`" +msgstr "" + +#: aiogram.utils.formatting.TextMention:1 of +msgid "Text mention element." +msgstr "" + +#: aiogram.utils.formatting.TextMention:3 of +msgid "" +"Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` " +"with type " +":obj:`aiogram.enums.message_entity_type.MessageEntityType.TEXT_MENTION`" +msgstr "" + +#: aiogram.utils.formatting.CustomEmoji:1 of +msgid "Custom emoji element." +msgstr "" + +#: aiogram.utils.formatting.CustomEmoji:3 of +msgid "" +"Will be wrapped into :obj:`aiogram.types.message_entity.MessageEntity` " +"with type " +":obj:`aiogram.enums.message_entity_type.MessageEntityType.CUSTOM_EMOJI`" +msgstr "" diff --git a/docs/locale/uk_UA/LC_MESSAGES/utils/keyboard.po b/docs/locale/uk_UA/LC_MESSAGES/utils/keyboard.po index a8baf774..71ae13f3 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/utils/keyboard.po +++ b/docs/locale/uk_UA/LC_MESSAGES/utils/keyboard.po @@ -7,62 +7,110 @@ msgid "" msgstr "" "Project-Id-Version: aiogram\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-07 23:24+0200\n" +"POT-Creation-Date: 2023-08-06 16:52+0300\n" "PO-Revision-Date: 2022-10-13 21:54+0300\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.12.1\n" -#: ../../utils/keyboard.rst:3 +#: ../../utils/keyboard.rst:4 msgid "Keyboard builder" msgstr "Конструктор клавіатури" -#: ../../utils/keyboard.rst:5 +#: ../../utils/keyboard.rst:6 msgid "Keyboard builder helps to dynamically generate markup." msgstr "Конструктор клавіатури допомагає динамічно генерувати розмітку" -#: ../../utils/keyboard.rst:9 +#: ../../utils/keyboard.rst:10 msgid "" "Note that if you have static markup, it's best to define it explicitly " "rather than using builder, but if you have dynamic markup configuration, " "feel free to use builder as you wish." -msgstr "Зауважте, що якщо у вас є статична розмітка, найкраще визначити її явно, " -"а не використовувати конструктор, але якщо у вас є конфігурація динамічної розмітки, " -"сміливо використовуйте конструктор на свій розсуд." +msgstr "" +"Зауважте, що якщо у вас є статична розмітка, найкраще визначити її явно, " +"а не використовувати конструктор, але якщо у вас є конфігурація " +"динамічної розмітки, сміливо використовуйте конструктор на свій розсуд." -#: ../../utils/keyboard.rst:14 +#: ../../utils/keyboard.rst:15 msgid "Usage example" msgstr "Приклад використання" -#: ../../utils/keyboard.rst:29 -msgid "Base builder" -msgstr "Базовий конструктор" - -#: aiogram.utils.keyboard.ReplyKeyboardBuilder:1 of -msgid "Reply keyboard builder inherits all methods from generic builder" +#: ../../utils/keyboard.rst:17 +msgid "For example you want to generate inline keyboard with 10 buttons" msgstr "" -"Конструктор клавіатури відповідей успадковує всі методи від " + +#: ../../utils/keyboard.rst:27 +msgid "" +"then adjust this buttons to some grid, for example first line will have 3" +" buttons, the next lines will have 2 buttons" +msgstr "" + +#: ../../utils/keyboard.rst:33 +msgid "also you can attach another builder to this one" +msgstr "" + +#: ../../utils/keyboard.rst:40 +msgid "or you can attach some already generated markup" +msgstr "" + +#: ../../utils/keyboard.rst:47 +msgid "and finally you can export this markup to use it in your message" +msgstr "" + +#: ../../utils/keyboard.rst:53 +#, fuzzy +msgid "Reply keyboard builder has the same interface" +msgstr "Конструктор клавіатури допомагає динамічно генерувати розмітку" + +#: ../../utils/keyboard.rst:57 +msgid "" +"Note that you can't attach reply keyboard builder to inline keyboard " +"builder and vice versa" +msgstr "" + +#: ../../utils/keyboard.rst:61 +msgid "Inline Keyboard" +msgstr "Клавіатура під повідомленням(Inline Keyboard)" + +#: aiogram.utils.keyboard.InlineKeyboardBuilder:1 of +msgid "Inline keyboard builder inherits all methods from generic builder" +msgstr "" +"Конструктор клавіатури під повідомленням успадковує всі методи від " "універсального конструктора" +#: ../../utils/keyboard.rst:69 +msgid "Add new inline button to markup" +msgstr "Додавання нової кнопки до розмітки" + +#: ../../utils/keyboard.rst:74 +msgid "Construct an InlineKeyboardMarkup" +msgstr "Створення InlineKeyboardMarkup" + #: aiogram.utils.keyboard.KeyboardBuilder.add:1 of msgid "Add one or many buttons to markup." msgstr "Додавання однієї або кількох кнопок до розмітки." +#: aiogram.utils.keyboard.InlineKeyboardBuilder.from_markup #: aiogram.utils.keyboard.KeyboardBuilder.add #: aiogram.utils.keyboard.KeyboardBuilder.adjust -#: aiogram.utils.keyboard.KeyboardBuilder.row of +#: aiogram.utils.keyboard.KeyboardBuilder.row +#: aiogram.utils.keyboard.ReplyKeyboardBuilder.from_markup of msgid "Parameters" msgstr "Параметри" +#: aiogram.utils.keyboard.InlineKeyboardBuilder.buttons +#: aiogram.utils.keyboard.InlineKeyboardBuilder.copy +#: aiogram.utils.keyboard.InlineKeyboardBuilder.from_markup #: aiogram.utils.keyboard.KeyboardBuilder.add #: aiogram.utils.keyboard.KeyboardBuilder.adjust #: aiogram.utils.keyboard.KeyboardBuilder.export #: aiogram.utils.keyboard.KeyboardBuilder.row #: aiogram.utils.keyboard.ReplyKeyboardBuilder.buttons -#: aiogram.utils.keyboard.ReplyKeyboardBuilder.copy of +#: aiogram.utils.keyboard.ReplyKeyboardBuilder.copy +#: aiogram.utils.keyboard.ReplyKeyboardBuilder.from_markup of msgid "Returns" msgstr "Повертає" @@ -83,10 +131,12 @@ msgstr "" "передано параметр repeat=True, усі розміри будуть повторюватися, поки є " "доступні кнопки" +#: aiogram.utils.keyboard.InlineKeyboardBuilder.buttons:1 #: aiogram.utils.keyboard.ReplyKeyboardBuilder.buttons:1 of msgid "Get flatten set of all buttons" msgstr "Отримання плоского списку усіх кнопок" +#: aiogram.utils.keyboard.InlineKeyboardBuilder.copy:1 #: aiogram.utils.keyboard.ReplyKeyboardBuilder.copy:1 of msgid "Make full copy of current builder with markup" msgstr "Робить повну копію поточного конструктора з розміткою" @@ -95,6 +145,11 @@ msgstr "Робить повну копію поточного конструкт msgid "Export configured markup as list of lists of buttons" msgstr "Експортує налаштовану розмітку як список списків кнопок" +#: aiogram.utils.keyboard.InlineKeyboardBuilder.from_markup:1 +#: aiogram.utils.keyboard.ReplyKeyboardBuilder.from_markup:1 of +msgid "Create builder from existing markup" +msgstr "" + #: aiogram.utils.keyboard.KeyboardBuilder.row:1 of msgid "Add row to markup" msgstr "Додає рядок у розмітку" @@ -105,32 +160,20 @@ msgstr "" "Коли передано занадто багато кнопок, вони будуть розділені на багато " "рядків" -#: ../../utils/keyboard.rst:35 -msgid "Inline Keyboard" -msgstr "Клавіатура під повідомленням(Inline Keyboard)" - -#: aiogram.utils.keyboard.InlineKeyboardBuilder:1 of -msgid "Inline keyboard builder inherits all methods from generic builder" -msgstr "" -"Конструктор клавіатури під повідомленням успадковує всі методи від " -"універсального конструктора" - -#: ../../utils/keyboard.rst:43 -msgid "Add new inline button to markup" -msgstr "Додавання нової кнопки до розмітки" - -#: ../../utils/keyboard.rst:48 -msgid "Construct an InlineKeyboardMarkup" -msgstr "Створення InlineKeyboardMarkup" - -#: ../../utils/keyboard.rst:51 +#: ../../utils/keyboard.rst:77 msgid "Reply Keyboard" msgstr "Клавіатура відповідей" -#: ../../utils/keyboard.rst:59 +#: aiogram.utils.keyboard.ReplyKeyboardBuilder:1 of +msgid "Reply keyboard builder inherits all methods from generic builder" +msgstr "" +"Конструктор клавіатури відповідей успадковує всі методи від " +"універсального конструктора" + +#: ../../utils/keyboard.rst:85 msgid "Add new button to markup" msgstr "Додавання нової кнопки до розмітки" -#: ../../utils/keyboard.rst:64 +#: ../../utils/keyboard.rst:90 msgid "Construct an ReplyKeyboardMarkup" msgstr "Створення ReplyKeyboardMarkup" diff --git a/docs/locale/uk_UA/LC_MESSAGES/utils/media_group.po b/docs/locale/uk_UA/LC_MESSAGES/utils/media_group.po new file mode 100644 index 00000000..adf8c7d2 --- /dev/null +++ b/docs/locale/uk_UA/LC_MESSAGES/utils/media_group.po @@ -0,0 +1,291 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2023, aiogram Team +# This file is distributed under the same license as the aiogram package. +# FIRST AUTHOR , 2023. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: aiogram \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-09-14 17:21+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.12.1\n" + +#: ../../utils/media_group.rst:3 +msgid "Media group builder" +msgstr "" + +#: ../../utils/media_group.rst:5 +msgid "" +"This module provides a builder for media groups, it can be used to build " +"media groups for " +":class:`aiogram.types.input_media_photo.InputMediaPhoto`, " +":class:`aiogram.types.input_media_video.InputMediaVideo`, " +":class:`aiogram.types.input_media_document.InputMediaDocument` and " +":class:`aiogram.types.input_media_audio.InputMediaAudio`." +msgstr "" + +#: ../../utils/media_group.rst:11 +msgid "" +":class:`aiogram.types.input_media_animation.InputMediaAnimation` is not " +"supported yet in the Bot API to send as media group." +msgstr "" + +#: ../../utils/media_group.rst:16 +msgid "Usage" +msgstr "" + +#: ../../utils/media_group.rst:30 +msgid "" +"To send media group use " +":meth:`aiogram.methods.send_media_group.SendMediaGroup` method, but when " +"you use :class:`aiogram.utils.media_group.MediaGroupBuilder` you should " +"pass ``media`` argument as ``media_group.build()``." +msgstr "" + +#: ../../utils/media_group.rst:34 +msgid "" +"If you specify ``caption`` in " +":class:`aiogram.utils.media_group.MediaGroupBuilder` it will be used as " +"``caption`` for first media in group." +msgstr "" + +#: ../../utils/media_group.rst:43 +msgid "References" +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add:1 of +msgid "Add a media object to the media group." +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add +#: aiogram.utils.media_group.MediaGroupBuilder.add_audio +#: aiogram.utils.media_group.MediaGroupBuilder.add_document +#: aiogram.utils.media_group.MediaGroupBuilder.add_photo +#: aiogram.utils.media_group.MediaGroupBuilder.add_video of +msgid "Parameters" +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add:3 of +msgid "" +"Keyword arguments for the media object. The available keyword arguments " +"depend on the media type." +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add +#: aiogram.utils.media_group.MediaGroupBuilder.add_audio +#: aiogram.utils.media_group.MediaGroupBuilder.add_document +#: aiogram.utils.media_group.MediaGroupBuilder.add_photo +#: aiogram.utils.media_group.MediaGroupBuilder.add_video +#: aiogram.utils.media_group.MediaGroupBuilder.build of +msgid "Returns" +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add:5 +#: aiogram.utils.media_group.MediaGroupBuilder.add_audio:22 +#: aiogram.utils.media_group.MediaGroupBuilder.add_document:27 +#: aiogram.utils.media_group.MediaGroupBuilder.add_photo:17 +#: aiogram.utils.media_group.MediaGroupBuilder.add_video:30 of +msgid "None" +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_audio:1 of +msgid "Add an audio file to the media group." +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_audio:3 +#: aiogram.utils.media_group.MediaGroupBuilder.add_photo:3 of +msgid "" +"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 » `" +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_audio:3 +#: aiogram.utils.media_group.MediaGroupBuilder.add_photo:3 of +msgid "" +"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." +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_audio:7 +#: aiogram.utils.media_group.MediaGroupBuilder.add_photo:7 of +msgid ":ref:`More information on Sending Files » `" +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_audio:8 of +msgid "" +"*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." +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_audio:12 of +msgid "" +"*Optional*. Caption of the audio to be sent, 0-1024 characters after " +"entities parsing" +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_audio:14 of +msgid "" +"*Optional*. Mode for parsing entities in the audio caption. See " +"`formatting options `_ for more details." +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_audio:17 +#: aiogram.utils.media_group.MediaGroupBuilder.add_document:22 +#: aiogram.utils.media_group.MediaGroupBuilder.add_photo:13 +#: aiogram.utils.media_group.MediaGroupBuilder.add_video:21 of +msgid "" +"*Optional*. List of special entities that appear in the caption, which " +"can be specified instead of *parse_mode*" +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_audio:19 of +msgid "*Optional*. Duration of the audio in seconds" +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_audio:20 of +msgid "*Optional*. Performer of the audio" +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_audio:21 of +msgid "*Optional*. Title of the audio" +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_document:1 of +msgid "Add a document to the media group." +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_document:3 +#: aiogram.utils.media_group.MediaGroupBuilder.add_video:3 of +msgid "" +"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 » `" +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_document:8 +#: aiogram.utils.media_group.MediaGroupBuilder.add_video:8 of +msgid "" +"*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 » `" +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_document:17 of +msgid "" +"*Optional*. Caption of the document to be sent, 0-1024 characters after " +"entities parsing" +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_document:19 of +msgid "" +"*Optional*. Mode for parsing entities in the document caption. See " +"`formatting options `_ for more details." +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_document:24 of +msgid "" +"*Optional*. Disables automatic server-side content type detection for " +"files uploaded using multipart/form-data. Always :code:`True`, if the " +"document is sent as part of an album." +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_photo:1 of +msgid "Add a photo to the media group." +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_photo:8 of +msgid "" +"*Optional*. Caption of the photo to be sent, 0-1024 characters after " +"entities parsing" +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_photo:10 of +msgid "" +"*Optional*. Mode for parsing entities in the photo caption. See " +"`formatting options `_ for more details." +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_photo:15 of +msgid "" +"*Optional*. Pass :code:`True` if the photo needs to be covered with a " +"spoiler animation" +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_video:1 of +msgid "Add a video to the media group." +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_video:16 of +msgid "" +"*Optional*. Caption of the video to be sent, 0-1024 characters after " +"entities parsing" +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_video:18 of +msgid "" +"*Optional*. Mode for parsing entities in the video caption. See " +"`formatting options `_ for more details." +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_video:23 of +msgid "*Optional*. Video width" +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_video:24 of +msgid "*Optional*. Video height" +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_video:25 of +msgid "*Optional*. Video duration in seconds" +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_video:26 of +msgid "" +"*Optional*. Pass :code:`True` if the uploaded video is suitable for " +"streaming" +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.add_video:28 of +msgid "" +"*Optional*. Pass :code:`True` if the video needs to be covered with a " +"spoiler animation" +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.build:1 of +msgid "Builds a list of media objects for a media group." +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.build:3 of +msgid "Adds the caption to the first media object if it is present." +msgstr "" + +#: aiogram.utils.media_group.MediaGroupBuilder.build:5 of +msgid "List of media objects." +msgstr "" + diff --git a/docs/locale/uk_UA/LC_MESSAGES/utils/web_app.po b/docs/locale/uk_UA/LC_MESSAGES/utils/web_app.po index acfe426f..fa34c791 100644 --- a/docs/locale/uk_UA/LC_MESSAGES/utils/web_app.po +++ b/docs/locale/uk_UA/LC_MESSAGES/utils/web_app.po @@ -5,17 +5,16 @@ # msgid "" msgstr "" -"Project-Id-Version: aiogram\n" +"Project-Id-Version: aiogram\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-01 22:51+0300\n" +"POT-Creation-Date: 2023-07-30 18:31+0300\n" "PO-Revision-Date: 2022-10-13 22:18+0300\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.1.1\n" +"Generated-By: Babel 2.12.1\n" #: ../../utils/web_app.rst:3 msgid "WebApp" @@ -23,29 +22,30 @@ msgstr "Веб Застосунок (WebApp)" #: ../../utils/web_app.rst:5 msgid "" -"Telegram Bot API 6.0 announces a revolution in the development of chatbots " -"using WebApp feature." +"Telegram Bot API 6.0 announces a revolution in the development of " +"chatbots using WebApp feature." msgstr "" "Telegram Bot API 6.0 зробив революцію у розробці чат-ботів, " "використовуючи особливості Веб Застосунків" #: ../../utils/web_app.rst:7 msgid "" -"You can read more details on it in the official `blog `_ and `documentation `_." +"You can read more details on it in the official `blog " +"`_ and " +"`documentation `_." msgstr "" -"Ви можете прочитати більше про це в офіційному `блозі `_ та `документації `_." +"Ви можете прочитати більше про це в офіційному `блозі " +"`_ та " +"`документації `_." #: ../../utils/web_app.rst:10 msgid "" "`aiogram` implements simple utils to remove headache with the data " "validation from Telegram WebApp on the backend side." msgstr "" -"`aiogram` реалізує прості утиліти для усунення головного болю, надаючи готові інструменти " -"перевірки даних із Веб Застосунку Telegram на серверній стороні." +"`aiogram` реалізує прості утиліти для усунення головного болю, надаючи " +"готові інструменти перевірки даних із Веб Застосунку Telegram на " +"серверній стороні." #: ../../utils/web_app.rst:13 msgid "Usage" @@ -58,8 +58,9 @@ msgid "" "return User info inside response as :code:`application/json`" msgstr "" "Наприклад, із фронтенду ви передасте :code:`application/x-www-form-" -"urlencoded` в POST запиті із полем :code:`_auth` у тілі та хочете повернути " -"інформацію про користувача у відповідь як :code:`application/json`" +"urlencoded` в POST запиті із полем :code:`_auth` у тілі та хочете " +"повернути інформацію про користувача у відповідь як " +":code:`application/json`" #: ../../utils/web_app.rst:35 msgid "Functions" @@ -118,8 +119,8 @@ msgstr "дані з frontend для аналізу" #: aiogram.utils.web_app.safe_parse_webapp_init_data:1 of msgid "Validate raw WebApp init data and return it as WebAppInitData object" msgstr "" -"Перевірка необроблених даних ініціалізації Веб Застосунку і повернення їх " -"як об’єкту WebAppInitData" +"Перевірка необроблених даних ініціалізації Веб Застосунку і повернення їх" +" як об’єкту WebAppInitData" #: aiogram.utils.web_app.safe_parse_webapp_init_data:3 of msgid "Raise :obj:`ValueError` when data is invalid" @@ -146,17 +147,36 @@ msgstr "" "відкриття. Він порожній, якщо Веб Застосунок було запущено за допомогою " "кнопки клавіатури." -#: aiogram.utils.web_app.WebAppInitData:3 of +#: aiogram.utils.web_app.WebAppInitData:4 of msgid "Source: https://core.telegram.org/bots/webapps#webappinitdata" msgstr "Джерело: https://core.telegram.org/bots/webapps#webappinitdata" #: ../../docstring aiogram.utils.web_app.WebAppInitData.query_id:1 of msgid "" -"A unique identifier for the Web App session, required for sending messages " -"via the answerWebAppQuery method." +"A unique identifier for the Web App session, required for sending " +"messages via the answerWebAppQuery method." +msgstr "" +"Унікальний ідентифікатор сеансу Веб Застосунку, необхідний для надсилання" +" повідомлень через метод answerWebAppQuery." + +#: ../../docstring aiogram.utils.web_app.WebAppInitData.model_config:1 +#: aiogram.utils.web_app.WebAppUser.model_config:1 of +msgid "" +"Configuration for the model, should be a dictionary conforming to " +"[`ConfigDict`][pydantic.config.ConfigDict]." +msgstr "" + +#: ../../docstring aiogram.utils.web_app.WebAppInitData.model_fields:1 +#: aiogram.utils.web_app.WebAppUser.model_fields:1 of +msgid "" +"Metadata about the fields defined on the model, mapping of field names to" +" [`FieldInfo`][pydantic.fields.FieldInfo]." +msgstr "" + +#: ../../docstring aiogram.utils.web_app.WebAppInitData.model_fields:4 +#: aiogram.utils.web_app.WebAppUser.model_fields:4 of +msgid "This replaces `Model.__fields__` from Pydantic V1." msgstr "" -"Унікальний ідентифікатор сеансу Веб Застосунку, необхідний для надсилання " -"повідомлень через метод answerWebAppQuery." #: ../../docstring aiogram.utils.web_app.WebAppInitData.user:1 of msgid "An object containing data about the current user." @@ -165,26 +185,26 @@ msgstr "Об'єкт, що містить дані про поточного ко #: ../../docstring aiogram.utils.web_app.WebAppInitData.receiver:1 of msgid "" "An object containing data about the chat partner of the current user in " -"the chat where the bot was launched via the attachment menu. Returned only " -"for Web Apps launched via the attachment menu." +"the chat where the bot was launched via the attachment menu. Returned " +"only for Web Apps launched via the attachment menu." msgstr "" -"Об’єкт, що містить дані про чат-партнера поточного користувача в чаті, де " -"бот був запущений через меню вкладень. Повертається лише для Веб " +"Об’єкт, що містить дані про чат-партнера поточного користувача в чаті, де" +" бот був запущений через меню вкладень. Повертається лише для Веб " "Застосунків, запущених через меню вкладень." #: ../../docstring aiogram.utils.web_app.WebAppInitData.start_param:1 of msgid "" -"The value of the startattach parameter, passed via link. Only returned for " -"Web Apps when launched from the attachment menu via link. The value of the " -"start_param parameter will also be passed in the GET-parameter " +"The value of the startattach parameter, passed via link. Only returned " +"for Web Apps when launched from the attachment menu via link. The value " +"of the start_param parameter will also be passed in the GET-parameter " "tgWebAppStartParam, so the Web App can load the correct interface right " "away." msgstr "" "Значення параметра startattach, передане через посилання. Повертається " "лише для Веб Застосунків, коли їх запускають із меню вкладень за " -"посиланням. Значення параметра start_param також буде передано в GET-" -"параметр tgWebAppStartParam, тому Веб Застосунок може відразу завантажити " -"правильний інтерфейс." +"посиланням. Значення параметра start_param також буде передано в " +"GET-параметр tgWebAppStartParam, тому Веб Застосунок може відразу " +"завантажити правильний інтерфейс." #: ../../docstring aiogram.utils.web_app.WebAppInitData.auth_date:1 of msgid "Unix time when the form was opened." @@ -208,17 +228,17 @@ msgstr "Джерело: https://core.telegram.org/bots/webapps#webappuser" #: ../../docstring aiogram.utils.web_app.WebAppUser.id:1 of msgid "" -"A unique identifier for the user or bot. This number may have more than 32 " -"significant bits and some programming languages may have difficulty/silent " -"defects in interpreting it. It has at most 52 significant bits, so a 64-" -"bit integer or a double-precision float type is safe for storing this " -"identifier." +"A unique identifier for the user or bot. This number may have more than " +"32 significant bits and some programming languages may have " +"difficulty/silent defects in interpreting it. It has at most 52 " +"significant bits, so a 64-bit integer or a double-precision float type is" +" safe for storing this identifier." msgstr "" "Унікальний ідентифікатор користувача або бота. Це число може мати більше " -"32 значущих бітів, і деякі мови програмування можуть мати труднощі/" -"мовчазні дефекти в його інтерпретації. Він має щонайбільше 52 значущі " -"біти, тому 64-бітне ціле число або тип з плаваючою точністю подвійної " -"точності є безпечним для зберігання цього ідентифікатора." +"32 значущих бітів, і деякі мови програмування можуть мати " +"труднощі/мовчазні дефекти в його інтерпретації. Він має щонайбільше 52 " +"значущі біти, тому 64-бітне ціле число або тип з плаваючою точністю " +"подвійної точності є безпечним для зберігання цього ідентифікатора." #: ../../docstring aiogram.utils.web_app.WebAppUser.is_bot:1 of msgid "True, if this user is a bot. Returns in the receiver field only." @@ -238,8 +258,7 @@ msgstr "Нік користувача або бота." #: ../../docstring aiogram.utils.web_app.WebAppUser.language_code:1 of msgid "IETF language tag of the user's language. Returns in user field only." -msgstr "" -"Мовний тег IETF мови користувача. Повертаєтся лише в полі користувача." +msgstr "Мовний тег IETF мови користувача. Повертаєтся лише в полі користувача." #: ../../docstring aiogram.utils.web_app.WebAppUser.photo_url:1 of msgid "" @@ -247,5 +266,5 @@ msgid "" "formats. Only returned for Web Apps launched from the attachment menu." msgstr "" "URL-адреса фотографії профілю користувача. Фотографія може бути у " -"форматах .jpeg або .svg. Повертається лише для Веб Застосунків, запущених " -"із меню вкладень." +"форматах .jpeg або .svg. Повертається лише для Веб Застосунків, запущених" +" із меню вкладень." diff --git a/docs/migration_2_to_3.rst b/docs/migration_2_to_3.rst new file mode 100644 index 00000000..0eeef2bf --- /dev/null +++ b/docs/migration_2_to_3.rst @@ -0,0 +1,151 @@ +========================== +Migration FAQ (2.x -> 3.0) +========================== + +.. danger:: + + This guide is still in progress. + +This version introduces numerous breaking changes and architectural improvements. +It helps reduce the count of global variables in your code, provides useful mechanisms +to modularize your code, and enables the creation of shareable modules via packages on PyPI. +It also makes middlewares and filters more controllable, among other improvements. + + +On this page, you can read about the changes made in relation to the last stable 2.x version. + +.. note:: + + This page more closely resembles a detailed changelog than a migration guide, + but it will be updated in the future. + + Feel free to contribute to this page, if you find something that is not mentioned here. + + +Dispatcher +========== + +- The :class:`Dispatcher` class no longer accepts a `Bot` instance in its initializer. + Instead, the `Bot` instance should be passed to the dispatcher only for starting polling + or handling events from webhooks. This approach also allows for the use of multiple bot + instances simultaneously ("multibot"). +- :class:`Dispatcher` now can be extended with another Dispatcher-like + thing named :class:`Router` (:ref:`Read more » `). +- With routes, you can easily modularize your code and potentially share these modules between projects. +- Removed the **_handler** suffix from all event handler decorators and registering methods. + (:ref:`Read more » `) +- The Executor has been entirely removed; you can now use the Dispatcher directly to start poll the API or handle webhooks from it. +- The throttling method has been completely removed; you can now use middlewares to control + the execution context and implement any throttling mechanism you desire. +- Removed global context variables from the API types, Bot and Dispatcher object, + From now on, if you want to access the current bot instance within handlers or filters, + you should accept the argument :code:`bot: Bot` and use it instead of :code:`Bot.get_current()`. + In middlewares, it can be accessed via :code:`data["bot"]`. +- To skip pending updates, you should now call the :class:`aiogram.methods.delete_webhook.DeleteWebhook` method directly, rather than passing :code:`skip_updates=True` to the start polling method. + + + +Filtering events +================ + +- Keyword filters can no longer be used; use filters explicitly. (`Read more » `_) +- Due to the removal of keyword filters, all previously enabled-by-default filters + (such as state and content_type) are now disabled. + You must specify them explicitly if you wish to use them. + For example instead of using :code:`@dp.message_handler(content_types=ContentType.PHOTO)` + you should use :code:`@router.message(F.photo)` +- Most common filters have been replaced with the "magic filter." (:ref:`Read more » `) +- By default, the message handler now receives any content type. + If you want a specific one, simply add the appropriate filters (Magic or any other). +- The state filter is no longer enabled by default. This means that if you used :code:`state="*"` + in v2, you should not pass any state filter in v3. + Conversely, if the state was not specified in v2, you will now need to specify it in v3. +- Added the possibility to register global filters for each router, which helps to reduce code + repetition and provides an easier way to control the purpose of each router. + + + +Bot API +======= + +- All API methods are now classes with validation, implemented via + `pydantic `. + These API calls are also available as methods in the Bot class. +- More pre-defined Enums have been added and moved to the `aiogram.enums` sub-package. + For example, the chat type enum is now :class:`aiogram.enums.ChatType` instead of :class:`aiogram.types.chat.ChatType`. +- The HTTP client session has been separated into a container that can be reused + across different Bot instances within the application. +- API Exceptions are no longer classified by specific messages, + as Telegram has no documented error codes. + However, all errors are classified by HTTP status codes, and for each method, + only one type of error can be associated with a given code. + Therefore, in most cases, you should check only the error type (by status code) + without inspecting the error message. + + + +Middlewares +=========== + +- Middlewares can now control an execution context, e.g., using context managers. + (:ref:`Read more » `) +- All contextual data is now shared end-to-end between middlewares, filters, and handlers. + For example now you can easily pass some data into context inside middleware and + get it in the filters layer as the same way as in the handlers via keyword arguments. +- Added a mechanism named **flags** that helps customize handler behavior + in conjunction with middlewares. (:ref:`Read more » `) + + +Keyboard Markup +=============== + +- Now :class:`aiogram.types.inline_keyboard_markup.InlineKeyboardMarkup` + and :class:`aiogram.types.reply_keyboard_markup.ReplyKeyboardMarkup` no longer have methods for extension, + instead you have to use markup builders :class:`aiogram.utils.keyboard.ReplyKeyboardBuilder` + and :class:`aiogram.utils.keyboard.KeyboardBuilder` respectively + (:ref:`Read more » `) + + +Callbacks data +============== + +- The callback data factory is now strictly typed using `pydantic `_ models. + (:ref:`Read more » `) + + +Finite State machine +==================== + +- State filters will no longer be automatically added to all handlers; + you will need to specify the state if you want to use it. +- Added the possibility to change the FSM strategy. For example, + if you want to control the state for each user based on chat topics rather than + the user in a chat, you can specify this in the Dispatcher. +- Now :class:`aiogram.fsm.state.State` and :class:`aiogram.fsm.state.StateGroup` don't have helper + methods like :code:`.set()`, :code:`.next()`, etc. + +- Instead, you should set states by passing them directly to + :class:`aiogram.fsm.context.FSMContext` (:ref:`Read more » `) +- The state proxy is deprecated; you should update the state data by calling + :code:`state.set_data(...)` and :code:`state.get_data()` respectively. + + +Sending Files +============= + +- From now on, you should wrap files in an InputFile object before sending them, + instead of passing the IO object directly to the API method. (:ref:`Read more » `) + + +Webhook +======= + +- The aiohttp web app configuration has been simplified. +- By default, the ability to upload files has been added when you `make requests in response to updates `_ (available for webhook only). + + +Telegram API Server +=================== + +- The `server` parameter has been moved from the `Bot` instance to `api` in `BaseSession`. +- The constant `aiogram.bot.api.TELEGRAM_PRODUCTION` has been moved to `aiogram.client.telegram.PRODUCTION`. diff --git a/docs/utils/formatting.rst b/docs/utils/formatting.rst new file mode 100644 index 00000000..898c1d13 --- /dev/null +++ b/docs/utils/formatting.rst @@ -0,0 +1,199 @@ +.. _formatting-tool: + +========== +Formatting +========== + +Make your message formatting flexible and simple + +This instrument works on top of Message entities instead of using HTML or Markdown markups, +you can easily construct your message and sent it to the Telegram without the need to +remember tag parity (opening and closing) or escaping user input. + +Usage +===== + +Basic scenario +-------------- + +Construct your message and send it to the Telegram. + +.. code-block:: python + + content = Text("Hello, ", Bold(message.from_user.full_name), "!") + await message.answer(**content.as_kwargs()) + +Is the same as the next example, but without usage markup + +.. code-block:: python + + await message.answer( + text=f"Hello, {html.quote(message.from_user.full_name)}!", + parse_mode=ParseMode.HTML + ) + +Literally when you execute :code:`as_kwargs` method the Text object is converted +into text :code:`Hello, Alex!` with entities list :code:`[MessageEntity(type='bold', offset=7, length=4)]` +and passed into dict which can be used as :code:`**kwargs` in API call. + +The complete list of elements is listed `on this page below <#available-elements>`_. + +Advanced scenario +----------------- + +On top of base elements can be implemented content rendering structures, +so, out of the box aiogram has a few already implemented functions that helps you to format +your messages: + +.. autofunction:: aiogram.utils.formatting.as_line + +.. autofunction:: aiogram.utils.formatting.as_list + +.. autofunction:: aiogram.utils.formatting.as_marked_list + +.. autofunction:: aiogram.utils.formatting.as_numbered_list + +.. autofunction:: aiogram.utils.formatting.as_section + +.. autofunction:: aiogram.utils.formatting.as_marked_section + +.. autofunction:: aiogram.utils.formatting.as_numbered_section + +.. autofunction:: aiogram.utils.formatting.as_key_value + +and lets complete them all: + +.. code-block:: python + + content = as_list( + as_marked_section( + Bold("Success:"), + "Test 1", + "Test 3", + "Test 4", + marker="✅ ", + ), + as_marked_section( + Bold("Failed:"), + "Test 2", + marker="❌ ", + ), + as_marked_section( + Bold("Summary:"), + as_key_value("Total", 4), + as_key_value("Success", 3), + as_key_value("Failed", 1), + marker=" ", + ), + HashTag("#test"), + sep="\n\n", + ) + +Will be rendered into: + + **Success:** + + ✅ Test 1 + + ✅ Test 3 + + ✅ Test 4 + + **Failed:** + + ❌ Test 2 + + **Summary:** + + **Total**: 4 + + **Success**: 3 + + **Failed**: 1 + + #test + + +Or as HTML: + +.. code-block:: html + + Success: + ✅ Test 1 + ✅ Test 3 + ✅ Test 4 + + Failed: + ❌ Test 2 + + Summary: + Total: 4 + Success: 3 + Failed: 1 + + #test + +Available methods +================= + +.. autoclass:: aiogram.utils.formatting.Text + :members: + :show-inheritance: + :member-order: bysource + :special-members: __init__ + + +Available elements +================== + +.. autoclass:: aiogram.utils.formatting.Text + :show-inheritance: + :noindex: + +.. autoclass:: aiogram.utils.formatting.HashTag + :show-inheritance: + +.. autoclass:: aiogram.utils.formatting.CashTag + :show-inheritance: + +.. autoclass:: aiogram.utils.formatting.BotCommand + :show-inheritance: + +.. autoclass:: aiogram.utils.formatting.Url + :show-inheritance: + +.. autoclass:: aiogram.utils.formatting.Email + :show-inheritance: + +.. autoclass:: aiogram.utils.formatting.PhoneNumber + :show-inheritance: + +.. autoclass:: aiogram.utils.formatting.Bold + :show-inheritance: + +.. autoclass:: aiogram.utils.formatting.Italic + :show-inheritance: + +.. autoclass:: aiogram.utils.formatting.Underline + :show-inheritance: + +.. autoclass:: aiogram.utils.formatting.Strikethrough + :show-inheritance: + +.. autoclass:: aiogram.utils.formatting.Spoiler + :show-inheritance: + +.. autoclass:: aiogram.utils.formatting.Code + :show-inheritance: + +.. autoclass:: aiogram.utils.formatting.Pre + :show-inheritance: + +.. autoclass:: aiogram.utils.formatting.TextLink + :show-inheritance: + +.. autoclass:: aiogram.utils.formatting.TextMention + :show-inheritance: + +.. autoclass:: aiogram.utils.formatting.CustomEmoji + :show-inheritance: diff --git a/docs/utils/i18n.rst b/docs/utils/i18n.rst index cbaeed1e..6a17cc4c 100644 --- a/docs/utils/i18n.rst +++ b/docs/utils/i18n.rst @@ -63,7 +63,7 @@ Also if you want to use translated string in keyword- or magic- filters you will from aiogram import F from aiogram.utils.i18n import lazy_gettext as __ - @router.message(F.text.lower() == __("My menu entry")) + @router.message(F.text == __("My menu entry")) ... diff --git a/docs/utils/index.rst b/docs/utils/index.rst index cfe5a543..034c04d8 100644 --- a/docs/utils/index.rst +++ b/docs/utils/index.rst @@ -9,3 +9,5 @@ Utils chat_action web_app callback_answer + formatting + media_group diff --git a/docs/utils/keyboard.rst b/docs/utils/keyboard.rst index 752ffb0e..6f631ae6 100644 --- a/docs/utils/keyboard.rst +++ b/docs/utils/keyboard.rst @@ -1,3 +1,5 @@ +.. _Keyboard builder: + ================ Keyboard builder ================ @@ -13,6 +15,8 @@ Keyboard builder helps to dynamically generate markup. Usage example ============= +For example you want to generate inline keyboard with 10 buttons + .. code-block:: python builder = InlineKeyboardBuilder() @@ -20,22 +24,45 @@ Usage example for index in range(1, 11): builder.button(text=f"Set {index}", callback_data=f"set:{index}") + +then adjust this buttons to some grid, for example first line will have 3 buttons, the next lines will have 2 buttons + +.. code-block:: + builder.adjust(3, 2) +also you can attach another builder to this one + +.. code-block:: python + + another_builder = InlineKeyboardBuilder(...)... # Another builder with some buttons + builder.attach(another_builder) + +or you can attach some already generated markup + +.. code-block:: python + + markup = InlineKeyboardMarkup(inline_keyboard=[...]) # Some markup + builder.attach(InlineKeyboardBuilder.from_markup(markup)) + +and finally you can export this markup to use it in your message + +.. code-block:: python + await message.answer("Some text here", reply_markup=builder.as_markup()) +Reply keyboard builder has the same interface + +.. warning:: + + Note that you can't attach reply keyboard builder to inline keyboard builder and vice versa -Base builder -============ -.. autoclass:: aiogram.utils.keyboard.ReplyKeyboardBuilder - :members: __init__, buttons, copy, export, add, row, adjust, button, as_markup - :undoc-members: True Inline Keyboard =============== .. autoclass:: aiogram.utils.keyboard.InlineKeyboardBuilder - :noindex: + :members: __init__, buttons, copy, export, add, row, adjust, from_markup, attach .. method:: button(text: str, url: Optional[str] = None, login_url: Optional[LoginUrl] = None, callback_data: Optional[Union[str, CallbackData]] = None, switch_inline_query: Optional[str] = None, switch_inline_query_current_chat: Optional[str] = None, callback_game: Optional[CallbackGame] = None, pay: Optional[bool] = None, **kwargs: Any) -> aiogram.utils.keyboard.InlineKeyboardBuilder :noindex: @@ -51,7 +78,7 @@ Reply Keyboard ============== .. autoclass:: aiogram.utils.keyboard.ReplyKeyboardBuilder - :noindex: + :members: __init__, buttons, copy, export, add, row, adjust, from_markup, attach .. method:: button(text: str, request_contact: Optional[bool] = None, request_location: Optional[bool] = None, request_poll: Optional[KeyboardButtonPollType] = None, **kwargs: Any) -> aiogram.utils.keyboard.ReplyKeyboardBuilder :noindex: diff --git a/docs/utils/media_group.rst b/docs/utils/media_group.rst new file mode 100644 index 00000000..c9501a66 --- /dev/null +++ b/docs/utils/media_group.rst @@ -0,0 +1,46 @@ +=================== +Media group builder +=================== + +This module provides a builder for media groups, it can be used to build media groups +for :class:`aiogram.types.input_media_photo.InputMediaPhoto`, :class:`aiogram.types.input_media_video.InputMediaVideo`, +:class:`aiogram.types.input_media_document.InputMediaDocument` and :class:`aiogram.types.input_media_audio.InputMediaAudio`. + +.. warning:: + + :class:`aiogram.types.input_media_animation.InputMediaAnimation` + is not supported yet in the Bot API to send as media group. + + +Usage +===== + +.. code-block:: python + + media_group = MediaGroupBuilder(caption="Media group caption") + + # Add photo + media_group.add_photo(media="https://picsum.photos/200/300") + # Dynamically add photo with known type without using separate method + media_group.add(type="photo", media="https://picsum.photos/200/300") + # ... or video + media_group.add(type="video", media=FSInputFile("media/video.mp4")) + + +To send media group use :meth:`aiogram.methods.send_media_group.SendMediaGroup` method, +but when you use :class:`aiogram.utils.media_group.MediaGroupBuilder` +you should pass ``media`` argument as ``media_group.build()``. + +If you specify ``caption`` in :class:`aiogram.utils.media_group.MediaGroupBuilder` +it will be used as ``caption`` for first media in group. + +.. code-block:: python + + await bot.send_media_group(chat_id=chat_id, media=media_group.build()) + + +References +========== + +.. autoclass:: aiogram.utils.media_group.MediaGroupBuilder + :members: diff --git a/examples/context_addition_from_filter.py b/examples/context_addition_from_filter.py new file mode 100644 index 00000000..40338940 --- /dev/null +++ b/examples/context_addition_from_filter.py @@ -0,0 +1,30 @@ +from typing import Any, Dict, Optional, Union + +from aiogram import Router +from aiogram.filters import Filter +from aiogram.types import Message, User + +router = Router(name=__name__) + + +class HelloFilter(Filter): + def __init__(self, name: Optional[str] = None) -> None: + self.name = name + + async def __call__( + self, + message: Message, + event_from_user: User + # Filters also can accept keyword parameters like in handlers + ) -> Union[bool, Dict[str, Any]]: + if message.text.casefold() == "hello": + # Returning a dictionary that will update the context data + return {"name": event_from_user.mention_html(name=self.name)} + return False + + +@router.message(HelloFilter()) +async def my_handler( + message: Message, name: str # Now we can accept "name" as named parameter +) -> Any: + return message.answer("Hello, {name}!".format(name=name)) diff --git a/examples/echo_bot.py b/examples/echo_bot.py index e18201af..7cb1babe 100644 --- a/examples/echo_bot.py +++ b/examples/echo_bot.py @@ -1,39 +1,43 @@ import asyncio import logging +import sys +from os import getenv from aiogram import Bot, Dispatcher, Router, types -from aiogram.filters import Command +from aiogram.enums import ParseMode +from aiogram.filters import CommandStart from aiogram.types import Message +from aiogram.utils.markdown import hbold # Bot token can be obtained via https://t.me/BotFather -TOKEN = "42:TOKEN" +TOKEN = getenv("BOT_TOKEN") # All handlers should be attached to the Router (or Dispatcher) -router = Router() +dp = Dispatcher() -@router.message(Command(commands=["start"])) +@dp.message(CommandStart()) async def command_start_handler(message: Message) -> None: """ - This handler receive messages with `/start` command + This handler receives messages with `/start` command """ # Most event objects have aliases for API methods that can be called in events' context # For example if you want to answer to incoming message you can use `message.answer(...)` alias # and the target chat will be passed to :ref:`aiogram.methods.send_message.SendMessage` # method automatically or call API method directly via # Bot instance: `bot.send_message(chat_id=message.chat.id, ...)` - await message.answer(f"Hello, {message.from_user.full_name}!") + await message.answer(f"Hello, {hbold(message.from_user.full_name)}!") -@router.message() +@dp.message() async def echo_handler(message: types.Message) -> None: """ - Handler will forward received message back to the sender + Handler will forward receive a message back to the sender - By default, message handler will handle all message types (like text, photo, sticker and etc.) + By default, message handler will handle all message types (like a text, photo, sticker etc.) """ try: - # Send copy of the received message + # Send a copy of the received message await message.send_copy(chat_id=message.chat.id) except TypeError: # But not all the types is supported to be copied so need to handle it @@ -41,17 +45,12 @@ async def echo_handler(message: types.Message) -> None: async def main() -> None: - # Dispatcher is a root router - dp = Dispatcher() - # ... and all other routers should be attached to Dispatcher - dp.include_router(router) - # Initialize Bot instance with a default parse mode which will be passed to all API calls - bot = Bot(TOKEN, parse_mode="HTML") + bot = Bot(TOKEN, parse_mode=ParseMode.HTML) # And the run events dispatching await dp.start_polling(bot) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) + logging.basicConfig(level=logging.INFO, stream=sys.stdout) asyncio.run(main()) diff --git a/examples/echo_bot_webhook.py b/examples/echo_bot_webhook.py new file mode 100644 index 00000000..1fa56c3d --- /dev/null +++ b/examples/echo_bot_webhook.py @@ -0,0 +1,107 @@ +""" +This example shows how to use webhook on behind of any reverse proxy (nginx, traefik, ingress etc.) +""" +import logging +import sys +from os import getenv + +from aiohttp import web + +from aiogram import Bot, Dispatcher, Router, types +from aiogram.enums import ParseMode +from aiogram.filters import CommandStart +from aiogram.types import Message +from aiogram.utils.markdown import hbold +from aiogram.webhook.aiohttp_server import SimpleRequestHandler, setup_application + +# Bot token can be obtained via https://t.me/BotFather +TOKEN = getenv("BOT_TOKEN") + +# Webserver settings +# bind localhost only to prevent any external access +WEB_SERVER_HOST = "127.0.0.1" +# Port for incoming request from reverse proxy. Should be any available port +WEB_SERVER_PORT = 8080 + +# Path to webhook route, on which Telegram will send requests +WEBHOOK_PATH = "/webhook" +# Secret key to validate requests from Telegram (optional) +WEBHOOK_SECRET = "my-secret" +# Base URL for webhook will be used to generate webhook URL for Telegram, +# in this example it is used public DNS with HTTPS support +BASE_WEBHOOK_URL = "https://aiogram.dev/" + +# All handlers should be attached to the Router (or Dispatcher) +router = Router() + + +@router.message(CommandStart()) +async def command_start_handler(message: Message) -> None: + """ + This handler receives messages with `/start` command + """ + # Most event objects have aliases for API methods that can be called in events' context + # For example if you want to answer to incoming message you can use `message.answer(...)` alias + # and the target chat will be passed to :ref:`aiogram.methods.send_message.SendMessage` + # method automatically or call API method directly via + # Bot instance: `bot.send_message(chat_id=message.chat.id, ...)` + await message.answer(f"Hello, {hbold(message.from_user.full_name)}!") + + +@router.message() +async def echo_handler(message: types.Message) -> None: + """ + Handler will forward receive a message back to the sender + + By default, message handler will handle all message types (like text, photo, sticker etc.) + """ + try: + # Send a copy of the received message + await message.send_copy(chat_id=message.chat.id) + except TypeError: + # But not all the types is supported to be copied so need to handle it + await message.answer("Nice try!") + + +async def on_startup(bot: Bot) -> None: + # If you have a self-signed SSL certificate, then you will need to send a public + # certificate to Telegram + await bot.set_webhook(f"{BASE_WEBHOOK_URL}{WEBHOOK_PATH}", secret_token=WEBHOOK_SECRET) + + +def main() -> None: + # Dispatcher is a root router + dp = Dispatcher() + # ... and all other routers should be attached to Dispatcher + dp.include_router(router) + + # Register startup hook to initialize webhook + dp.startup.register(on_startup) + + # Initialize Bot instance with a default parse mode which will be passed to all API calls + bot = Bot(TOKEN, parse_mode=ParseMode.HTML) + + # Create aiohttp.web.Application instance + app = web.Application() + + # Create an instance of request handler, + # aiogram has few implementations for different cases of usage + # In this example we use SimpleRequestHandler which is designed to handle simple cases + webhook_requests_handler = SimpleRequestHandler( + dispatcher=dp, + bot=bot, + secret_token=WEBHOOK_SECRET, + ) + # Register webhook handler on application + webhook_requests_handler.register(app, path=WEBHOOK_PATH) + + # Mount dispatcher startup and shutdown hooks to aiohttp application + setup_application(app, dp, bot=bot) + + # And finally start webserver + web.run_app(app, host=WEB_SERVER_HOST, port=WEB_SERVER_PORT) + + +if __name__ == "__main__": + logging.basicConfig(level=logging.INFO, stream=sys.stdout) + main() diff --git a/examples/echo_bot_webhook_ssl.py b/examples/echo_bot_webhook_ssl.py new file mode 100644 index 00000000..ad41bc4d --- /dev/null +++ b/examples/echo_bot_webhook_ssl.py @@ -0,0 +1,122 @@ +""" +This example shows how to use webhook with SSL certificate. +""" +import logging +import ssl +import sys +from os import getenv + +from aiohttp import web + +from aiogram import Bot, Dispatcher, Router, types +from aiogram.enums import ParseMode +from aiogram.filters import CommandStart +from aiogram.types import FSInputFile, Message +from aiogram.utils.markdown import hbold +from aiogram.webhook.aiohttp_server import SimpleRequestHandler, setup_application + +# Bot token can be obtained via https://t.me/BotFather +TOKEN = getenv("BOT_TOKEN") + +# Webserver settings +# bind localhost only to prevent any external access +WEB_SERVER_HOST = "127.0.0.1" +# Port for incoming request from reverse proxy. Should be any available port +WEB_SERVER_PORT = 8080 + +# Path to webhook route, on which Telegram will send requests +WEBHOOK_PATH = "/webhook" +# Secret key to validate requests from Telegram (optional) +WEBHOOK_SECRET = "my-secret" +# Base URL for webhook will be used to generate webhook URL for Telegram, +# in this example it is used public address with TLS support +BASE_WEBHOOK_URL = "https://aiogram.dev" + +# Path to SSL certificate and private key for self-signed certificate. +WEBHOOK_SSL_CERT = "/path/to/cert.pem" +WEBHOOK_SSL_PRIV = "/path/to/private.key" + +# All handlers should be attached to the Router (or Dispatcher) +router = Router() + + +@router.message(CommandStart()) +async def command_start_handler(message: Message) -> None: + """ + This handler receives messages with `/start` command + """ + # Most event objects have aliases for API methods that can be called in events' context + # For example if you want to answer to incoming message you can use `message.answer(...)` alias + # and the target chat will be passed to :ref:`aiogram.methods.send_message.SendMessage` + # method automatically or call API method directly via + # Bot instance: `bot.send_message(chat_id=message.chat.id, ...)` + await message.answer(f"Hello, {hbold(message.from_user.full_name)}!") + + +@router.message() +async def echo_handler(message: types.Message) -> None: + """ + Handler will forward receive a message back to the sender + + By default, message handler will handle all message types (like text, photo, sticker etc.) + """ + try: + # Send a copy of the received message + await message.send_copy(chat_id=message.chat.id) + except TypeError: + # But not all the types is supported to be copied so need to handle it + await message.answer("Nice try!") + + +async def on_startup(bot: Bot) -> None: + # In case when you have a self-signed SSL certificate, you need to send the certificate + # itself to Telegram servers for validation purposes + # (see https://core.telegram.org/bots/self-signed) + # But if you have a valid SSL certificate, you SHOULD NOT send it to Telegram servers. + await bot.set_webhook( + f"{BASE_WEBHOOK_URL}{WEBHOOK_PATH}", + certificate=FSInputFile(WEBHOOK_SSL_CERT), + secret_token=WEBHOOK_SECRET, + ) + + +def main() -> None: + # Dispatcher is a root router + dp = Dispatcher() + # ... and all other routers should be attached to Dispatcher + dp.include_router(router) + + # Register startup hook to initialize webhook + dp.startup.register(on_startup) + + # Initialize Bot instance with a default parse mode which will be passed to all API calls + bot = Bot(TOKEN, parse_mode=ParseMode.HTML) + + # Create aiohttp.web.Application instance + app = web.Application() + + # Create an instance of request handler, + # aiogram has few implementations for different cases of usage + # In this example we use SimpleRequestHandler which is designed to handle simple cases + webhook_requests_handler = SimpleRequestHandler( + dispatcher=dp, + bot=bot, + secret_token=WEBHOOK_SECRET, + ) + # Register webhook handler on application + webhook_requests_handler.register(app, path=WEBHOOK_PATH) + + # Mount dispatcher startup and shutdown hooks to aiohttp application + setup_application(app, dp, bot=bot) + + # Generate SSL context + context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2) + context.load_cert_chain(WEBHOOK_SSL_CERT, WEBHOOK_SSL_PRIV) + + # And finally start webserver + web.run_app(app, host=WEB_SERVER_HOST, port=WEB_SERVER_PORT, ssl_context=context) + + +if __name__ == "__main__": + logging.basicConfig(level=logging.INFO, stream=sys.stdout) + main() diff --git a/examples/error_handling.py b/examples/error_handling.py new file mode 100644 index 00000000..83b5500d --- /dev/null +++ b/examples/error_handling.py @@ -0,0 +1,110 @@ +import asyncio +import html +import logging + +from aiogram import Bot, Dispatcher, types +from aiogram.filters import ( + Command, + CommandObject, + ExceptionMessageFilter, + ExceptionTypeFilter, +) +from aiogram.types import ErrorEvent + +TOKEN = "42:TOKEN" + +dp = Dispatcher() + +logger = logging.getLogger(__name__) + + +class InvalidAge(Exception): + pass + + +class InvalidName(Exception): + def __init__(self, message: str): + super().__init__(message) + + +@dp.errors(ExceptionTypeFilter(InvalidAge)) +async def handle_invalid_age_exception(event: ErrorEvent, bot: Bot) -> None: + """ + This handler receives only error events with `InvalidAge` exception type. + """ + # To get the original event that caused the exception you can use `event.update` property. + # In this case it will be `Message` object. + # To get the exception itself you can use `event.exception` property. + # In this case we filter errors, so we can be sure `event.exception` is an `InvalidAge` object. + assert isinstance(event.exception, InvalidAge) + logger.error("Error caught: %r while processing %r", event.exception, event.update) + + assert event.update.message is not None + chat_id = event.update.message.chat.id + + # Bot instance is passed to the handler as a keyword argument. + # We can use `bot.send_message` method to send a message to the user, logging the error. + text = f"Error caught: {html.escape(repr(event.exception))}" + await bot.send_message(chat_id=chat_id, text=text) + + +@dp.errors(ExceptionMessageFilter("Invalid")) +async def handle_invalid_exceptions(event: ErrorEvent) -> None: + """ + This handler receives error events with "Invalid" message in them. + """ + # Because we specified `ExceptionTypeFilter` with `InvalidAge` exception type earlier, + # this handler will receive error events with any exception type except `InvalidAge` and + # only if the exception message contains "Invalid" substring. + logger.error("Error `Invalid` caught: %r while processing %r", event.exception, event.update) + + +@dp.message(Command("age")) +async def handle_set_age(message: types.Message, command: CommandObject) -> None: + """ + This handler receives only messages with `/age` command. + + If the user sends a message with `/age` command, but the age is invalid, + the `InvalidAge` exception will be raised and the `handle_invalid_age_exception` + handler will be called. + """ + # To get the command object you can use `command` keyword argument with `CommandObject` type. + # To get the command arguments you can use `command.args` property. + age = command.args + if not age: + raise InvalidAge("No age provided. Please provide your age as a command argument.") + + # If the age is invalid, raise an exception. + if not age.isdigit(): + raise InvalidAge("Age should be a number") + + # If the age is valid, send a message to the user. + age = int(age) + await message.reply(text=f"Your age is {age}") + + +@dp.message(Command("name")) +async def handle_set_name(message: types.Message, command: CommandObject) -> None: + """ + This handler receives only messages with `/name` command. + """ + # To get the command object you can use `command` keyword argument with `CommandObject` type. + # To get the command arguments you can use `command.args` property. + name = command.args + if not name: + raise InvalidName("Invalid name. Please provide your name as a command argument.") + + # If the name is valid, send a message to the user. + await message.reply(text=f"Your name is {name}") + + +async def main() -> None: + # Initialize Bot instance with a default parse mode which will be passed to all API calls + bot = Bot(TOKEN, parse_mode="HTML") + # And the run events dispatching + await dp.start_polling(bot) + + +if __name__ == "__main__": + loop = asyncio.new_event_loop() + loop.run_until_complete(main()) diff --git a/examples/finite_state_machine.py b/examples/finite_state_machine.py index 8539015c..2905ec5b 100644 --- a/examples/finite_state_machine.py +++ b/examples/finite_state_machine.py @@ -5,7 +5,8 @@ from os import getenv from typing import Any, Dict from aiogram import Bot, Dispatcher, F, Router, html -from aiogram.filters import Command +from aiogram.enums import ParseMode +from aiogram.filters import Command, CommandStart from aiogram.fsm.context import FSMContext from aiogram.fsm.state import State, StatesGroup from aiogram.types import ( @@ -15,6 +16,8 @@ from aiogram.types import ( ReplyKeyboardRemove, ) +TOKEN = getenv("BOT_TOKEN") + form_router = Router() @@ -24,7 +27,7 @@ class Form(StatesGroup): language = State() -@form_router.message(Command("start")) +@form_router.message(CommandStart()) async def command_start(message: Message, state: FSMContext) -> None: await state.set_state(Form.name) await message.answer( @@ -91,7 +94,7 @@ async def process_like_write_bots(message: Message, state: FSMContext) -> None: @form_router.message(Form.like_bots) -async def process_unknown_write_bots(message: Message, state: FSMContext) -> None: +async def process_unknown_write_bots(message: Message) -> None: await message.reply("I don't understand you :(") @@ -99,12 +102,12 @@ async def process_unknown_write_bots(message: Message, state: FSMContext) -> Non async def process_language(message: Message, state: FSMContext) -> None: data = await state.update_data(language=message.text) await state.clear() - text = ( - "Thank for all! Python is in my hearth!\nSee you soon." - if message.text.casefold() == "python" - else "Thank for information!\nSee you soon." - ) - await message.answer(text) + + if message.text.casefold() == "python": + await message.reply( + "Python, you say? That's the language that makes my circuits light up! 😉" + ) + await show_summary(message=message, data=data) @@ -121,7 +124,7 @@ async def show_summary(message: Message, data: Dict[str, Any], positive: bool = async def main(): - bot = Bot(token=getenv("TELEGRAM_TOKEN"), parse_mode="HTML") + bot = Bot(token=TOKEN, parse_mode=ParseMode.HTML) dp = Dispatcher() dp.include_router(form_router) diff --git a/examples/multi_file_bot/bot.py b/examples/multi_file_bot/bot.py new file mode 100644 index 00000000..927b52a0 --- /dev/null +++ b/examples/multi_file_bot/bot.py @@ -0,0 +1,32 @@ +import asyncio +import logging +from os import getenv + +from handlers.echo import echo_router +from handlers.start import start_router + +from aiogram import Bot, Dispatcher +from aiogram.enums import ParseMode + +# Bot token can be obtained via https://t.me/BotFather +TOKEN = getenv("BOT_TOKEN") + + +async def main() -> None: + # Dispatcher is a root router + dp = Dispatcher() + # Register all the routers from handlers package + dp.include_routers( + start_router, + echo_router, + ) + + # Initialize Bot instance with a default parse mode which will be passed to all API calls + bot = Bot(TOKEN, parse_mode=ParseMode.HTML) + # And the run events dispatching + await dp.start_polling(bot) + + +if __name__ == "__main__": + logging.basicConfig(level=logging.INFO) + asyncio.run(main()) diff --git a/examples/multi_file_bot/handlers/__init__.py b/examples/multi_file_bot/handlers/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/examples/multi_file_bot/handlers/echo.py b/examples/multi_file_bot/handlers/echo.py new file mode 100644 index 00000000..4961262c --- /dev/null +++ b/examples/multi_file_bot/handlers/echo.py @@ -0,0 +1,21 @@ +from aiogram import Router +from aiogram.filters import Command +from aiogram.types import Message + +# For each module with handlers we can create a separate router. +echo_router = Router() + + +@echo_router.message() +async def echo_handler(message: Message) -> None: + """ + Handler will forward receive a message back to the sender + + By default, message handler will handle all message types (like a text, photo, sticker etc.) + """ + try: + # Send a copy of the received message + await message.send_copy(chat_id=message.chat.id) + except TypeError: + # But not all the types is supported to be copied so need to handle it + await message.answer("Nice try!") diff --git a/examples/multi_file_bot/handlers/start.py b/examples/multi_file_bot/handlers/start.py new file mode 100644 index 00000000..804268c3 --- /dev/null +++ b/examples/multi_file_bot/handlers/start.py @@ -0,0 +1,18 @@ +from aiogram import Router +from aiogram.filters import Command +from aiogram.types import Message + +start_router = Router() + + +@start_router.message(Command("start")) +async def command_start_handler(message: Message) -> None: + """ + This handler receives messages with `/start` command + """ + # Most event objects have aliases for API methods that can be called in events' context + # For example if you want to answer to incoming message you can use `message.answer(...)` alias + # and the target chat will be passed to :ref:`aiogram.methods.send_message.SendMessage` + # method automatically or call API method directly via + # Bot instance: `bot.send_message(chat_id=message.chat.id, ...)` + await message.answer(f"Hello, {message.from_user.full_name}!") diff --git a/examples/multibot.py b/examples/multibot.py index b6a324cd..d5dbe5fc 100644 --- a/examples/multibot.py +++ b/examples/multibot.py @@ -1,3 +1,5 @@ +import logging +import sys from os import getenv from typing import Any, Dict, Union @@ -6,9 +8,10 @@ from finite_state_machine import form_router from aiogram import Bot, Dispatcher, F, Router from aiogram.client.session.aiohttp import AiohttpSession +from aiogram.enums import ParseMode from aiogram.exceptions import TelegramUnauthorizedError from aiogram.filters import Command, CommandObject -from aiogram.fsm.storage.redis import DefaultKeyBuilder, RedisStorage +from aiogram.fsm.storage.memory import MemoryStorage from aiogram.types import Message from aiogram.utils.token import TokenValidationError, validate_token from aiogram.webhook.aiohttp_server import ( @@ -20,7 +23,7 @@ from aiogram.webhook.aiohttp_server import ( main_router = Router() BASE_URL = getenv("BASE_URL", "https://example.com") -MAIN_BOT_TOKEN = getenv("TELEGRAM_TOKEN") +MAIN_BOT_TOKEN = getenv("BOT_TOKEN") WEB_SERVER_HOST = "127.0.0.1" WEB_SERVER_PORT = 8080 @@ -39,7 +42,7 @@ def is_bot_token(value: str) -> Union[bool, Dict[str, Any]]: return True -@main_router.message(Command(commands=["add"], magic=F.args.func(is_bot_token))) +@main_router.message(Command("add", magic=F.args.func(is_bot_token))) async def command_add_bot(message: Message, command: CommandObject, bot: Bot) -> Any: new_bot = Bot(token=command.args, session=bot.session) try: @@ -56,10 +59,13 @@ async def on_startup(dispatcher: Dispatcher, bot: Bot): def main(): + logging.basicConfig(level=logging.INFO, stream=sys.stdout) session = AiohttpSession() - bot_settings = {"session": session, "parse_mode": "HTML"} + bot_settings = {"session": session, "parse_mode": ParseMode.HTML} bot = Bot(token=MAIN_BOT_TOKEN, **bot_settings) - storage = RedisStorage.from_url(REDIS_DSN, key_builder=DefaultKeyBuilder(with_bot_id=True)) + storage = MemoryStorage() + # In order to use RedisStorage you need to use Key Builder with bot ID: + # storage = RedisStorage.from_url(REDIS_DSN, key_builder=DefaultKeyBuilder(with_bot_id=True)) main_dispatcher = Dispatcher(storage=storage) main_dispatcher.include_router(main_router) diff --git a/examples/specify_updates.py b/examples/specify_updates.py index f9380b91..56571f1a 100644 --- a/examples/specify_updates.py +++ b/examples/specify_updates.py @@ -1,8 +1,11 @@ import asyncio import logging +import sys +from os import getenv from aiogram import Bot, Dispatcher, Router -from aiogram.filters import Command +from aiogram.enums import ParseMode +from aiogram.filters import LEAVE_TRANSITION, ChatMemberUpdatedFilter, CommandStart from aiogram.types import ( CallbackQuery, ChatMemberUpdated, @@ -10,8 +13,9 @@ from aiogram.types import ( InlineKeyboardMarkup, Message, ) +from aiogram.utils.markdown import hbold, hcode -TOKEN = "6wo" +TOKEN = getenv("BOT_TOKEN") logger = logging.getLogger(__name__) logging.basicConfig(level=logging.INFO) @@ -19,14 +23,14 @@ logging.basicConfig(level=logging.INFO) router = Router() -@router.message(Command(commands=["start"])) +@router.message(CommandStart()) async def command_start_handler(message: Message) -> None: """ - This handler receive messages with `/start` command + This handler receives messages with `/start` command """ await message.answer( - f"Hello, {message.from_user.full_name}!", + f"Hello, {hbold(message.from_user.full_name)}!", reply_markup=InlineKeyboardMarkup( inline_keyboard=[[InlineKeyboardButton(text="Tap me, bro", callback_data="*")]] ), @@ -37,7 +41,7 @@ async def command_start_handler(message: Message) -> None: async def chat_member_update(chat_member: ChatMemberUpdated, bot: Bot) -> None: await bot.send_message( chat_member.chat.id, - "Member {chat_member.from_user.id} was changed " + f"Member {hcode(chat_member.from_user.id)} was changed " + f"from {chat_member.old_chat_member.status} to {chat_member.new_chat_member.status}", ) @@ -48,7 +52,7 @@ sub_router = Router() @sub_router.callback_query() async def callback_tap_me(callback_query: CallbackQuery) -> None: - await callback_query.answer("Yeah good, now i'm fine") + await callback_query.answer("Yeah good, now I'm fine") # this router will use only edited_message updates @@ -57,38 +61,36 @@ sub_sub_router = Router() @sub_sub_router.edited_message() async def edited_message_handler(edited_message: Message) -> None: - await edited_message.reply("Message was edited, big brother watch you") + await edited_message.reply("Message was edited, Big Brother watches you") # this router will use only my_chat_member updates deep_dark_router = Router() -@deep_dark_router.my_chat_member() +@deep_dark_router.my_chat_member(~ChatMemberUpdatedFilter(~LEAVE_TRANSITION)) async def my_chat_member_change(chat_member: ChatMemberUpdated, bot: Bot) -> None: await bot.send_message( chat_member.chat.id, - "Member was changed from " - + f"{chat_member.old_chat_member.status} to {chat_member.new_chat_member.status}", + f"This Bot`s status was changed from {hbold(chat_member.old_chat_member.status)} " + f"to {hbold(chat_member.new_chat_member.status)}", ) async def main() -> None: # Initialize Bot instance with a default parse mode which will be passed to all API calls - bot = Bot(TOKEN, parse_mode="HTML") + bot = Bot(TOKEN, parse_mode=ParseMode.HTML) dp = Dispatcher() - dp.include_router(router) + sub_router.include_router(deep_dark_router) - router.include_router(sub_router) - router.include_router(sub_sub_router) + router.include_routers(sub_router, sub_sub_router) + dp.include_router(router) - useful_updates = dp.resolve_used_update_types() - - # And the run events dispatching - await dp.start_polling(bot, allowed_updates=useful_updates) + # Start event dispatching + await dp.start_polling(bot) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) + logging.basicConfig(level=logging.INFO, stream=sys.stdout) asyncio.run(main()) diff --git a/examples/web_app/handlers.py b/examples/web_app/handlers.py index 5ac6cc7d..5896c0b2 100644 --- a/examples/web_app/handlers.py +++ b/examples/web_app/handlers.py @@ -11,7 +11,7 @@ from aiogram.types import ( my_router = Router() -@my_router.message(Command(commands=["start"])) +@my_router.message(Command("start")) async def command_start(message: Message, bot: Bot, base_url: str): await bot.set_chat_menu_button( chat_id=message.chat.id, @@ -20,7 +20,7 @@ async def command_start(message: Message, bot: Bot, base_url: str): await message.answer("""Hi!\nSend me any type of message to start.\nOr just send /webview""") -@my_router.message(Command(commands=["webview"])) +@my_router.message(Command("webview")) async def command_webview(message: Message, base_url: str): await message.answer( "Good. Now you can try to send it via Webview", diff --git a/examples/web_app/main.py b/examples/web_app/main.py index 0d58042c..db148153 100644 --- a/examples/web_app/main.py +++ b/examples/web_app/main.py @@ -1,4 +1,5 @@ import logging +import sys from os import getenv from aiohttp.web import run_app @@ -10,7 +11,8 @@ from aiogram import Bot, Dispatcher from aiogram.types import MenuButtonWebApp, WebAppInfo from aiogram.webhook.aiohttp_server import SimpleRequestHandler, setup_application -TELEGRAM_TOKEN = getenv("TELEGRAM_TOKEN") +TOKEN = getenv("BOT_TOKEN") + APP_BASE_URL = getenv("APP_BASE_URL") @@ -22,7 +24,7 @@ async def on_startup(bot: Bot, base_url: str): def main(): - bot = Bot(token=TELEGRAM_TOKEN, parse_mode="HTML") + bot = Bot(token=TOKEN, parse_mode="HTML") dispatcher = Dispatcher() dispatcher["base_url"] = APP_BASE_URL dispatcher.startup.register(on_startup) @@ -45,5 +47,5 @@ def main(): if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) + logging.basicConfig(level=logging.INFO, stream=sys.stdout) main() diff --git a/pyproject.toml b/pyproject.toml index faf6d02c..2ae2f1b6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,7 +24,7 @@ keywords = [ ] classifiers = [ "License :: OSI Approved :: MIT License", - "Development Status :: 4 - Beta", + "Development Status :: 5 - Production/Stable", "Environment :: Console", "Framework :: AsyncIO", "Typing :: Typed", @@ -40,67 +40,70 @@ classifiers = [ "Topic :: Communications :: Chat", ] dependencies = [ - "magic-filter~=1.0.9", - "aiohttp~=3.8.4", - "pydantic~=1.10.7", - "aiofiles~=23.1.0", - "certifi>=2022.9.24", + "magic-filter>=1.0.12,<1.1", + "aiohttp~=3.8.5", + "pydantic>=2.4.1,<2.6", + "aiofiles~=23.2.1", + "certifi>=2023.7.22", + "typing-extensions>=4.7.0,<=5.0", ] dynamic = ["version"] [tool.hatch.version] -path = "aiogram/__init__.py" +path = "aiogram/__meta__.py" [project.optional-dependencies] fast = [ "uvloop>=0.17.0; (sys_platform == 'darwin' or sys_platform == 'linux') and platform_python_implementation != 'PyPy'", + "aiodns>=3.0.0", ] redis = [ - "redis~=4.5.4", + "redis[hiredis]~=5.0.1", ] proxy = [ - "aiohttp-socks~=0.8.0", + "aiohttp-socks~=0.8.3", ] i18n = [ - "Babel~=2.12.1", + "Babel~=2.13.0", +] +cli = [ + "aiogram-cli~=1.0.3", ] test = [ - "pytest~=7.3.1", - "pytest-html~=3.2.0", - "pytest-asyncio~=0.21.0", + "pytest~=7.4.2", + "pytest-html~=4.0.2", + "pytest-asyncio~=0.21.1", "pytest-lazy-fixture~=0.6.3", - "pytest-mock~=3.10.0", - "pytest-mypy~=0.10.0", - "pytest-cov~=4.0.0", - "pytest-aiohttp~=1.0.4", + "pytest-mock~=3.12.0", + "pytest-mypy~=0.10.3", + "pytest-cov~=4.1.0", + "pytest-aiohttp~=1.0.5", "aresponses~=2.1.6", - "pytz~=2022.7.1" + "pytz~=2023.3", + "pycryptodomex~=3.19.0", ] docs = [ - "Sphinx~=5.2.3", - "sphinx-intl~=2.0.1", + "Sphinx~=7.2.6", + "sphinx-intl~=2.1.0", "sphinx-autobuild~=2021.3.14", - "sphinx-copybutton~=0.5.0", - "furo~=2022.9.29", - "sphinx-prompt~=1.5.0", + "sphinx-copybutton~=0.5.2", + "furo~=2023.9.10", "Sphinx-Substitution-Extensions~=2022.2.16", - "towncrier~=22.8.0", - "pygments~=2.4", - "pymdown-extensions~=9.6", - "markdown-include~=0.7.0", - "Pygments~=2.13.0", - "sphinxcontrib-towncrier~=0.3.1a3", + "towncrier~=23.6.0", + "pygments~=2.16.1", + "pymdown-extensions~=10.3", + "markdown-include~=0.8.1", + "Pygments~=2.16.1", + "sphinxcontrib-towncrier~=0.3.2a0", ] dev = [ - "black~=23.3.0", - "isort~=5.11", - "ruff~=0.0.262", - "mypy~=1.2.0", + "black~=23.10.0", + "isort~=5.12.0", + "ruff~=0.1.1", + "mypy~=1.6.1", "toml~=0.10.2", - "pre-commit~=3.2.2", - "towncrier~=22.12.0", - "packaging~=23.0", - "typing-extensions~=4.5.0", + "pre-commit~=3.5.0", + "packaging~=23.1", ] [project.urls] @@ -115,6 +118,7 @@ features = [ "redis", "proxy", "i18n", + "cli", ] post-install-commands = [ "pre-commit install", @@ -134,6 +138,7 @@ features = [ "proxy", "i18n", "docs", + "cli", ] [tool.hatch.envs.docs.scripts] serve = "sphinx-autobuild --watch aiogram/ --watch CHANGELOG.rst --watch README.rst docs/ docs/_build/ {args}" @@ -147,9 +152,7 @@ features = [ "proxy", "i18n", "test", -] -extra-dependencies = [ - "butcher @ git+https://github.com/aiogram/butcher.git@v0.1.14" + "cli", ] [tool.hatch.envs.dev.scripts] @@ -166,6 +169,7 @@ features = [ "proxy", "i18n", "test", + "cli", ] [tool.hatch.envs.test.scripts] @@ -233,6 +237,9 @@ asyncio_mode = "auto" testpaths = [ "tests", ] +#filterwarnings = [ +# "error", +#] [tool.coverage.run] branch = false diff --git a/scripts/bump_versions.py b/scripts/bump_versions.py index 7459192a..84f1f788 100644 --- a/scripts/bump_versions.py +++ b/scripts/bump_versions.py @@ -46,7 +46,7 @@ def replace_line(content: str, pattern: re.Pattern, new_value: str) -> str: def write_package_meta(api_version: str) -> None: - path = Path.cwd() / "aiogram" / "__init__.py" + path = Path.cwd() / "aiogram" / "__meta__.py" content = path.read_text() content = replace_line(content, API_VERSION, api_version) diff --git a/tests/conftest.py b/tests/conftest.py index b7b7774a..3e063ff1 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -4,7 +4,7 @@ import pytest from _pytest.config import UsageError from redis.asyncio.connection import parse_url as parse_redis_url -from aiogram import Bot, Dispatcher +from aiogram import Dispatcher from aiogram.fsm.storage.memory import ( DisabledEventIsolation, MemoryStorage, @@ -38,7 +38,7 @@ def pytest_collection_modifyitems(config, items): raise UsageError(f"Invalid redis URI {redis_uri!r}: {e}") -@pytest.fixture(scope="session") +@pytest.fixture() def redis_server(request): redis_uri = request.config.getoption("--redis") return redis_uri @@ -73,20 +73,9 @@ async def memory_storage(): @pytest.fixture() @pytest.mark.redis -async def redis_isolation(redis_server): - if not redis_server: - pytest.skip("Redis is not available here") - isolation = RedisEventIsolation.from_url(redis_server) - try: - await isolation.redis.info() - except ConnectionError as e: - pytest.skip(str(e)) - try: - yield isolation - finally: - conn = await isolation.redis - await conn.flushdb() - await isolation.close() +async def redis_isolation(redis_storage): + isolation = redis_storage.create_isolation() + return isolation @pytest.fixture() @@ -109,12 +98,7 @@ async def disabled_isolation(): @pytest.fixture() def bot(): - bot = MockedBot() - token = Bot.set_current(bot) - try: - yield bot - finally: - Bot.reset_current(token) + return MockedBot() @pytest.fixture() diff --git a/tests/mocked_bot.py b/tests/mocked_bot.py index 29c477a0..cd137aee 100644 --- a/tests/mocked_bot.py +++ b/tests/mocked_bot.py @@ -1,5 +1,5 @@ from collections import deque -from typing import TYPE_CHECKING, AsyncGenerator, Deque, Optional, Type +from typing import TYPE_CHECKING, Any, AsyncGenerator, Deque, Dict, Optional, Type from aiogram import Bot from aiogram.client.session.base import BaseSession @@ -35,16 +35,20 @@ class MockedSession(BaseSession): self.requests.append(method) response: Response[TelegramType] = self.responses.pop() self.check_response( - method=method, status_code=response.error_code, content=response.json() + bot=bot, + method=method, + status_code=response.error_code, + content=response.model_dump_json(), ) return response.result # type: ignore async def stream_content( self, url: str, - timeout: int, - chunk_size: int, - raise_for_status: bool, + headers: Optional[Dict[str, Any]] = None, + timeout: int = 30, + chunk_size: int = 65536, + raise_for_status: bool = True, ) -> AsyncGenerator[bytes, None]: # pragma: no cover yield b"" diff --git a/tests/test_api/test_client/test_bot.py b/tests/test_api/test_client/test_bot.py index 1cf94238..d4f2f75f 100644 --- a/tests/test_api/test_client/test_bot.py +++ b/tests/test_api/test_client/test_bot.py @@ -15,6 +15,26 @@ from aiogram.types import File, PhotoSize from tests.mocked_bot import MockedBot +@pytest.fixture() +async def bot(): + """Override mocked bot fixture with real bot.""" + async with Bot("42:TEST").context() as bot: + yield bot + + +@pytest.fixture() +def mocked_bot(): + """Mocked bot fixture.""" + return MockedBot() + + +@pytest.fixture() +async def session(): + """Override session fixture.""" + async with AiohttpSession() as session: + yield session + + class TestBot: def test_init(self): bot = Bot("42:TEST") @@ -30,9 +50,7 @@ class TestBot: assert bot == Bot("42:TEST") assert bot != "42:TEST" - async def test_emit(self): - bot = Bot("42:TEST") - + async def test_emit(self, bot: Bot): method = GetMe() with patch( @@ -42,8 +60,7 @@ class TestBot: await bot(method) mocked_make_request.assert_awaited_with(bot, method, timeout=None) - async def test_close(self): - session = AiohttpSession() + async def test_close(self, session: AiohttpSession): bot = Bot("42:TEST", session=session) await session.create_session() @@ -56,18 +73,23 @@ class TestBot: @pytest.mark.parametrize("close", [True, False]) async def test_context_manager(self, close: bool): with patch( - "aiogram.client.session.aiohttp.AiohttpSession.close", new_callable=AsyncMock + target="aiogram.client.session.aiohttp.AiohttpSession.close", + new_callable=AsyncMock, ) as mocked_close: - async with Bot("42:TEST", session=AiohttpSession()).context(auto_close=close) as bot: + session = AiohttpSession() + async with Bot("42:TEST", session=session).context(auto_close=close) as bot: assert isinstance(bot, Bot) + if close: mocked_close.assert_awaited() else: mocked_close.assert_not_awaited() + await session.close() async def test_download_file(self, aresponses: ResponsesMockServer): aresponses.add( - aresponses.ANY, aresponses.ANY, "get", aresponses.Response(status=200, body=b"\f" * 10) + method_pattern="get", + response=aresponses.Response(status=200, body=b"\f" * 10), ) # https://github.com/Tinche/aiofiles#writing-tests-for-aiofiles @@ -77,30 +99,34 @@ class TestBot: mock_file = MagicMock() - bot = Bot("42:TEST") - with patch("aiofiles.threadpool.sync_open", return_value=mock_file): - await bot.download_file("TEST", "file.png") - mock_file.write.assert_called_once_with(b"\f" * 10) - - async def test_download_file_default_destination(self, aresponses: ResponsesMockServer): - bot = Bot("42:TEST") + async with Bot("42:TEST").context() as bot: + with patch("aiofiles.threadpool.sync_open", return_value=mock_file): + await bot.download_file("TEST", "file.png") + mock_file.write.assert_called_once_with(b"\f" * 10) + async def test_download_file_default_destination( + self, + bot: Bot, + aresponses: ResponsesMockServer, + ): aresponses.add( - aresponses.ANY, aresponses.ANY, "get", aresponses.Response(status=200, body=b"\f" * 10) + method_pattern="get", + response=aresponses.Response(status=200, body=b"\f" * 10), ) - result = await bot.download_file("TEST") assert isinstance(result, io.BytesIO) assert result.read() == b"\f" * 10 - async def test_download_file_custom_destination(self, aresponses: ResponsesMockServer): - bot = Bot("42:TEST") - + async def test_download_file_custom_destination( + self, + bot: Bot, + aresponses: ResponsesMockServer, + ): aresponses.add( - aresponses.ANY, aresponses.ANY, "get", aresponses.Response(status=200, body=b"\f" * 10) + method_pattern="get", + response=aresponses.Response(status=200, body=b"\f" * 10), ) - custom = io.BytesIO() result = await bot.download_file("TEST", custom) @@ -109,19 +135,19 @@ class TestBot: assert result is custom assert result.read() == b"\f" * 10 - async def test_download(self, bot: MockedBot, aresponses: ResponsesMockServer): - bot.add_result_for( + async def test_download(self, mocked_bot: MockedBot): + mocked_bot.add_result_for( GetFile, ok=True, result=File(file_id="file id", file_unique_id="file id") ) - bot.add_result_for( + mocked_bot.add_result_for( GetFile, ok=True, result=File(file_id="file id", file_unique_id="file id") ) - assert await bot.download(File(file_id="file id", file_unique_id="file id")) - assert await bot.download("file id") + assert await mocked_bot.download(File(file_id="file id", file_unique_id="file id")) + assert await mocked_bot.download("file id") with pytest.raises(TypeError): - await bot.download( + await mocked_bot.download( [PhotoSize(file_id="file id", file_unique_id="file id", width=123, height=123)] ) diff --git a/tests/test_api/test_client/test_context_controller.py b/tests/test_api/test_client/test_context_controller.py new file mode 100644 index 00000000..25643b27 --- /dev/null +++ b/tests/test_api/test_client/test_context_controller.py @@ -0,0 +1,36 @@ +from aiogram.client.context_controller import BotContextController +from tests.mocked_bot import MockedBot + + +class MyModel(BotContextController): + id: int + + +class TestBotContextController: + def test_via_model_validate(self, bot: MockedBot): + my_model = MyModel.model_validate({"id": 1}, context={"bot": bot}) + assert my_model.id == 1 + assert my_model._bot == bot + + def test_via_model_validate_none(self): + my_model = MyModel.model_validate({"id": 1}, context={}) + assert my_model.id == 1 + assert my_model._bot is None + + def test_as(self, bot: MockedBot): + my_model = MyModel(id=1).as_(bot) + assert my_model.id == 1 + assert my_model._bot == bot + + def test_as_none(self): + my_model = MyModel(id=1).as_(None) + assert my_model.id == 1 + assert my_model._bot is None + + def test_replacement(self, bot: MockedBot): + my_model = MyModel(id=1).as_(bot) + assert my_model.id == 1 + assert my_model._bot == bot + my_model = my_model.as_(None) + assert my_model.id == 1 + assert my_model._bot is None diff --git a/tests/test_api/test_client/test_session/test_aiohttp_session.py b/tests/test_api/test_client/test_session/test_aiohttp_session.py index fd7cabfd..6740dcc1 100644 --- a/tests/test_api/test_client/test_session/test_aiohttp_session.py +++ b/tests/test_api/test_client/test_session/test_aiohttp_session.py @@ -1,5 +1,5 @@ import asyncio -from typing import Any, AsyncContextManager, AsyncGenerator, Dict, List +from typing import Any, AsyncContextManager, AsyncGenerator, AsyncIterable, Dict, List from unittest.mock import AsyncMock, patch import aiohttp_socks @@ -24,61 +24,53 @@ class BareInputFile(InputFile): class TestAiohttpSession: async def test_create_session(self): session = AiohttpSession() - assert session._session is None aiohttp_session = await session.create_session() assert session._session is not None assert isinstance(aiohttp_session, aiohttp.ClientSession) + await session.close() async def test_create_proxy_session(self): - session = AiohttpSession( - proxy=("socks5://proxy.url/", aiohttp.BasicAuth("login", "password", "encoding")) - ) + auth = aiohttp.BasicAuth("login", "password", "encoding") + async with AiohttpSession(proxy=("socks5://proxy.url/", auth)) as session: + assert session._connector_type == aiohttp_socks.ProxyConnector - assert session._connector_type == aiohttp_socks.ProxyConnector + assert isinstance(session._connector_init, dict) + assert session._connector_init["proxy_type"] is aiohttp_socks.ProxyType.SOCKS5 - assert isinstance(session._connector_init, dict) - assert session._connector_init["proxy_type"] is aiohttp_socks.ProxyType.SOCKS5 - - aiohttp_session = await session.create_session() - assert isinstance(aiohttp_session.connector, aiohttp_socks.ProxyConnector) + aiohttp_session = await session.create_session() + assert isinstance(aiohttp_session.connector, aiohttp_socks.ProxyConnector) async def test_create_proxy_session_proxy_url(self): - session = AiohttpSession(proxy="socks4://proxy.url/") + async with AiohttpSession(proxy="socks4://proxy.url/") as session: + assert isinstance(session.proxy, str) - assert isinstance(session.proxy, str) + assert isinstance(session._connector_init, dict) + assert session._connector_init["proxy_type"] is aiohttp_socks.ProxyType.SOCKS4 - assert isinstance(session._connector_init, dict) - assert session._connector_init["proxy_type"] is aiohttp_socks.ProxyType.SOCKS4 - - aiohttp_session = await session.create_session() - assert isinstance(aiohttp_session.connector, aiohttp_socks.ProxyConnector) + aiohttp_session = await session.create_session() + assert isinstance(aiohttp_session.connector, aiohttp_socks.ProxyConnector) async def test_create_proxy_session_chained_proxies(self): - session = AiohttpSession( - proxy=[ - "socks4://proxy.url/", - "socks5://proxy.url/", - "http://user:password@127.0.0.1:3128", - ] - ) + proxy_chain = [ + "socks4://proxy.url/", + "socks5://proxy.url/", + "http://user:password@127.0.0.1:3128", + ] + async with AiohttpSession(proxy=proxy_chain) as session: + assert isinstance(session.proxy, list) - assert isinstance(session.proxy, list) + assert isinstance(session._connector_init, dict) - assert isinstance(session._connector_init, dict) - assert isinstance(session._connector_init["proxy_infos"], list) - assert isinstance(session._connector_init["proxy_infos"][0], aiohttp_socks.ProxyInfo) + proxy_infos = session._connector_init["proxy_infos"] + assert isinstance(proxy_infos, list) + assert isinstance(proxy_infos[0], aiohttp_socks.ProxyInfo) + assert proxy_infos[0].proxy_type is aiohttp_socks.ProxyType.SOCKS4 + assert proxy_infos[1].proxy_type is aiohttp_socks.ProxyType.SOCKS5 + assert proxy_infos[2].proxy_type is aiohttp_socks.ProxyType.HTTP - assert ( - session._connector_init["proxy_infos"][0].proxy_type is aiohttp_socks.ProxyType.SOCKS4 - ) - assert ( - session._connector_init["proxy_infos"][1].proxy_type is aiohttp_socks.ProxyType.SOCKS5 - ) - assert session._connector_init["proxy_infos"][2].proxy_type is aiohttp_socks.ProxyType.HTTP - - aiohttp_session = await session.create_session() - assert isinstance(aiohttp_session.connector, aiohttp_socks.ChainProxyConnector) + aiohttp_session = await session.create_session() + assert isinstance(aiohttp_session.connector, aiohttp_socks.ChainProxyConnector) async def test_reset_connector(self): session = AiohttpSession() @@ -93,6 +85,7 @@ class TestAiohttpSession: assert session._should_reset_connector await session.create_session() assert session._should_reset_connector is False + await session.close() async def test_close_session(self): @@ -103,6 +96,8 @@ class TestAiohttpSession: await session.close() mocked_close.assert_called_once() + await session.close() + def test_build_form_data_with_data_only(self, bot: MockedBot): class TestMethod(TelegramMethod[bool]): __api_method__ = "test" @@ -156,7 +151,7 @@ class TestAiohttpSession: assert fields[1][2].startswith("attach://") assert fields[2][0]["name"] == fields[1][2][9:] assert fields[2][0]["filename"] == "file.txt" - assert isinstance(fields[2][2], BareInputFile) + assert isinstance(fields[2][2], AsyncIterable) async def test_make_request(self, bot: MockedBot, aresponses: ResponsesMockServer): aresponses.add( @@ -170,54 +165,53 @@ class TestAiohttpSession: ), ) - session = AiohttpSession() + async with AiohttpSession() as session: - class TestMethod(TelegramMethod[int]): - __returning__ = int - __api_method__ = "method" + class TestMethod(TelegramMethod[int]): + __returning__ = int + __api_method__ = "method" - call = TestMethod() + call = TestMethod() - result = await session.make_request(bot, call) - assert isinstance(result, int) - assert result == 42 + result = await session.make_request(bot, call) + assert isinstance(result, int) + assert result == 42 @pytest.mark.parametrize("error", [ClientError("mocked"), asyncio.TimeoutError()]) async def test_make_request_network_error(self, error): - bot = Bot("42:TEST") - async def side_effect(*args, **kwargs): raise error - with patch( - "aiohttp.client.ClientSession._request", - new_callable=AsyncMock, - side_effect=side_effect, - ): - with pytest.raises(TelegramNetworkError): - await bot.get_me() + async with Bot("42:TEST").context() as bot: + with patch( + "aiohttp.client.ClientSession._request", + new_callable=AsyncMock, + side_effect=side_effect, + ): + with pytest.raises(TelegramNetworkError): + await bot.get_me() async def test_stream_content(self, aresponses: ResponsesMockServer): aresponses.add( aresponses.ANY, aresponses.ANY, "get", aresponses.Response(status=200, body=b"\f" * 10) ) - session = AiohttpSession() - stream = session.stream_content( - "https://www.python.org/static/img/python-logo.png", - timeout=5, - chunk_size=1, - raise_for_status=True, - ) - assert isinstance(stream, AsyncGenerator) + async with AiohttpSession() as session: + stream = session.stream_content( + "https://www.python.org/static/img/python-logo.png", + timeout=5, + chunk_size=1, + raise_for_status=True, + ) + assert isinstance(stream, AsyncGenerator) - size = 0 - async for chunk in stream: - assert isinstance(chunk, bytes) - chunk_size = len(chunk) - assert chunk_size == 1 - size += chunk_size - assert size == 10 + size = 0 + async for chunk in stream: + assert isinstance(chunk, bytes) + chunk_size = len(chunk) + assert chunk_size == 1 + size += chunk_size + assert size == 10 async def test_stream_content_404(self, aresponses: ResponsesMockServer): aresponses.add( @@ -229,29 +223,30 @@ class TestAiohttpSession: body=b"File not found", ), ) - session = AiohttpSession() - stream = session.stream_content( - "https://www.python.org/static/img/python-logo.png", - timeout=5, - chunk_size=1, - raise_for_status=True, - ) + async with AiohttpSession() as session: + stream = session.stream_content( + "https://www.python.org/static/img/python-logo.png", + timeout=5, + chunk_size=1, + raise_for_status=True, + ) - with pytest.raises(ClientError): - async for _ in stream: - ... + with pytest.raises(ClientError): + async for _ in stream: + ... async def test_context_manager(self): - session = AiohttpSession() - assert isinstance(session, AsyncContextManager) + async with AiohttpSession() as session: + assert isinstance(session, AsyncContextManager) - with patch( - "aiogram.client.session.aiohttp.AiohttpSession.create_session", - new_callable=AsyncMock, - ) as mocked_create_session, patch( - "aiogram.client.session.aiohttp.AiohttpSession.close", new_callable=AsyncMock - ) as mocked_close: - async with session as ctx: - assert session == ctx - mocked_close.assert_awaited_once() - mocked_create_session.assert_awaited_once() + with patch( + "aiogram.client.session.aiohttp.AiohttpSession.create_session", + new_callable=AsyncMock, + ) as mocked_create_session, patch( + "aiogram.client.session.aiohttp.AiohttpSession.close", + new_callable=AsyncMock, + ) as mocked_close: + async with session as ctx: + assert session == ctx + mocked_close.assert_awaited_once() + mocked_create_session.assert_awaited_once() diff --git a/tests/test_api/test_client/test_session/test_base_session.py b/tests/test_api/test_client/test_session/test_base_session.py index 48d43cef..3793f22a 100644 --- a/tests/test_api/test_client/test_session/test_base_session.py +++ b/tests/test_api/test_client/test_session/test_base_session.py @@ -1,6 +1,6 @@ import datetime import json -from typing import Any, AsyncContextManager, AsyncGenerator, Optional +from typing import Any, AsyncContextManager, AsyncGenerator, Dict, Optional from unittest.mock import AsyncMock, patch import pytest @@ -44,7 +44,12 @@ class CustomSession(BaseSession): assert isinstance(method, TelegramMethod) async def stream_content( - self, url: str, timeout: int, chunk_size: int, raise_for_status: bool + self, + url: str, + headers: Optional[Dict[str, Any]] = None, + timeout: int = 30, + chunk_size: int = 65536, + raise_for_status: bool = True, ) -> AsyncGenerator[bytes, None]: # pragma: no cover assert isinstance(url, str) assert isinstance(timeout, int) @@ -165,9 +170,11 @@ class TestBaseSession: ) def test_check_response(self, status_code, content, error): session = CustomSession() + bot = MockedBot() method = DeleteMessage(chat_id=42, message_id=42) if error is None: session.check_response( + bot=bot, method=method, status_code=status_code, content=content, @@ -175,6 +182,7 @@ class TestBaseSession: else: with pytest.raises(error) as exc_info: session.check_response( + bot=bot, method=method, status_code=status_code, content=content, @@ -186,10 +194,12 @@ class TestBaseSession: def test_check_response_json_decode_error(self): session = CustomSession() + bot = MockedBot() method = DeleteMessage(chat_id=42, message_id=42) with pytest.raises(ClientDecodeError, match="JSONDecodeError"): session.check_response( + bot=bot, method=method, status_code=200, content="is not a JSON object", @@ -197,10 +207,12 @@ class TestBaseSession: def test_check_response_validation_error(self): session = CustomSession() + bot = MockedBot() method = DeleteMessage(chat_id=42, message_id=42) with pytest.raises(ClientDecodeError, match="ValidationError"): session.check_response( + bot=bot, method=method, status_code=200, content='{"ok": "test"}', @@ -215,6 +227,7 @@ class TestBaseSession: session = CustomSession() stream = session.stream_content( "https://www.python.org/static/img/python-logo.png", + headers={}, timeout=5, chunk_size=65536, raise_for_status=True, diff --git a/tests/test_api/test_methods/test_answer_inline_query.py b/tests/test_api/test_methods/test_answer_inline_query.py index a0cec362..cd8ba266 100644 --- a/tests/test_api/test_methods/test_answer_inline_query.py +++ b/tests/test_api/test_methods/test_answer_inline_query.py @@ -2,6 +2,7 @@ from aiogram import Bot from aiogram.methods import AnswerInlineQuery, Request from aiogram.types import ( InlineQueryResult, + InlineQueryResultArticle, InlineQueryResultPhoto, InputTextMessageContent, ) @@ -13,7 +14,14 @@ class TestAnswerInlineQuery: prepare_result = bot.add_result_for(AnswerInlineQuery, ok=True, result=True) response: bool = await bot.answer_inline_query( - inline_query_id="query id", results=[InlineQueryResult()] + inline_query_id="query id", + results=[ + InlineQueryResultArticle( + id="1", + title="title", + input_message_content=InputTextMessageContent(message_text="text"), + ) + ], ) request = bot.get_request() assert response == prepare_result.result diff --git a/tests/test_api/test_methods/test_answer_web_app_query.py b/tests/test_api/test_methods/test_answer_web_app_query.py index 6948bead..a42640a8 100644 --- a/tests/test_api/test_methods/test_answer_web_app_query.py +++ b/tests/test_api/test_methods/test_answer_web_app_query.py @@ -1,5 +1,5 @@ -from aiogram.methods import AnswerWebAppQuery, Request -from aiogram.types import InlineQueryResult, SentWebAppMessage +from aiogram.methods import AnswerWebAppQuery +from aiogram.types import InlineQueryResultPhoto, SentWebAppMessage from tests.mocked_bot import MockedBot @@ -9,7 +9,11 @@ class TestAnswerWebAppQuery: response: SentWebAppMessage = await bot.answer_web_app_query( web_app_query_id="test", - result=InlineQueryResult(), + result=InlineQueryResultPhoto( + id="test", + photo_url="test", + thumbnail_url="test", + ), ) request = bot.get_request() assert response == prepare_result.result diff --git a/tests/test_api/test_methods/test_base.py b/tests/test_api/test_methods/test_base.py index f2351d40..085650f3 100644 --- a/tests/test_api/test_methods/test_base.py +++ b/tests/test_api/test_methods/test_base.py @@ -3,7 +3,7 @@ from unittest.mock import sentinel import pytest from aiogram.methods import GetMe, TelegramMethod -from aiogram.types import User +from aiogram.types import TelegramObject, User from tests.mocked_bot import MockedBot @@ -16,12 +16,25 @@ class TestTelegramMethodRemoveUnset: [{"foo": "bar", "baz": sentinel.DEFAULT}, {"foo"}], ], ) - def test_remove_unset(self, values, names): - validated = TelegramMethod.remove_unset(values) + @pytest.mark.parametrize("obj", [TelegramMethod, TelegramObject]) + def test_remove_unset(self, values, names, obj): + validated = obj.remove_unset(values) assert set(validated.keys()) == names + @pytest.mark.parametrize("obj", [TelegramMethod, TelegramObject]) + def test_remove_unset_non_dict(self, obj): + assert obj.remove_unset("") == "" + class TestTelegramMethodCall: + async def test_async_emit_unsuccessful(self, bot: MockedBot): + with pytest.raises( + RuntimeError, + match="This method is not mounted to a any bot instance.+", + ): + await GetMe() + async def test_async_emit(self, bot: MockedBot): bot.add_result_for(GetMe, ok=True, result=User(id=42, is_bot=True, first_name="Test")) - assert isinstance(await GetMe(), User) + method = GetMe().as_(bot) + assert isinstance(await method, User) diff --git a/tests/test_api/test_methods/test_send_message.py b/tests/test_api/test_methods/test_send_message.py index 0210d73f..99242ca2 100644 --- a/tests/test_api/test_methods/test_send_message.py +++ b/tests/test_api/test_methods/test_send_message.py @@ -1,7 +1,7 @@ import datetime from aiogram.methods import Request, SendMessage -from aiogram.types import Chat, ForceReply, Message +from aiogram.types import Chat, ForceReply, Message, ReplyKeyboardRemove from tests.mocked_bot import MockedBot @@ -26,3 +26,8 @@ class TestSendMessage: # https://github.com/aiogram/aiogram/issues/901 method = SendMessage(text="test", chat_id=42, reply_markup=ForceReply()) assert isinstance(method.reply_markup, ForceReply) + + async def test_reply_keyboard_remove(self): + # https://github.com/aiogram/aiogram/issues/901 + method = SendMessage(text="test", chat_id=42, reply_markup=ReplyKeyboardRemove()) + assert isinstance(method.reply_markup, ReplyKeyboardRemove) diff --git a/tests/test_api/test_methods/test_set_passport_data_errors.py b/tests/test_api/test_methods/test_set_passport_data_errors.py index ecc2425b..0e5647fb 100644 --- a/tests/test_api/test_methods/test_set_passport_data_errors.py +++ b/tests/test_api/test_methods/test_set_passport_data_errors.py @@ -1,5 +1,5 @@ from aiogram.methods import Request, SetPassportDataErrors -from aiogram.types import PassportElementError +from aiogram.types import PassportElementError, PassportElementErrorFile from tests.mocked_bot import MockedBot @@ -8,7 +8,14 @@ class TestSetPassportDataErrors: prepare_result = bot.add_result_for(SetPassportDataErrors, ok=True, result=True) response: bool = await bot.set_passport_data_errors( - user_id=42, errors=[PassportElementError()] + user_id=42, + errors=[ + PassportElementErrorFile( + type="type", + file_hash="hash", + message="message", + ) + ], ) request = bot.get_request() assert response == prepare_result.result diff --git a/tests/test_api/test_methods/test_unpin_all_general_forum_topic_messages.py b/tests/test_api/test_methods/test_unpin_all_general_forum_topic_messages.py new file mode 100644 index 00000000..fc2df936 --- /dev/null +++ b/tests/test_api/test_methods/test_unpin_all_general_forum_topic_messages.py @@ -0,0 +1,19 @@ +from aiogram.methods import ( + Request, + UnpinAllForumTopicMessages, + UnpinAllGeneralForumTopicMessages, +) +from tests.mocked_bot import MockedBot + + +class TestUnpinAllForumTopicMessages: + async def test_bot_method(self, bot: MockedBot): + prepare_result = bot.add_result_for( + UnpinAllGeneralForumTopicMessages, ok=True, result=True + ) + + response: bool = await bot.unpin_all_general_forum_topic_messages( + chat_id=42, + ) + request = bot.get_request() + assert response == prepare_result.result diff --git a/tests/test_api/test_types/test_chat.py b/tests/test_api/test_types/test_chat.py index 03cb8963..14cc3dc2 100644 --- a/tests/test_api/test_types/test_chat.py +++ b/tests/test_api/test_types/test_chat.py @@ -207,3 +207,9 @@ class TestChat: ): chat = Chat(id=42, first_name=first, last_name=last, title=title, type=chat_type) assert chat.full_name == result + + def test_unpin_all_general_forum_topic_messages(self): + chat = Chat(id=-42, type="supergroup") + + method = chat.unpin_all_general_forum_topic_messages() + assert method.chat_id == chat.id diff --git a/tests/test_api/test_types/test_chat_join_request.py b/tests/test_api/test_types/test_chat_join_request.py index 089520e4..ec442cb1 100644 --- a/tests/test_api/test_types/test_chat_join_request.py +++ b/tests/test_api/test_types/test_chat_join_request.py @@ -1,6 +1,29 @@ import datetime +from typing import Any, Dict, Type, Union -from aiogram.methods import ApproveChatJoinRequest, DeclineChatJoinRequest +import pytest + +from aiogram.methods import ( + ApproveChatJoinRequest, + DeclineChatJoinRequest, + SendAnimation, + SendAudio, + SendContact, + SendDice, + SendDocument, + SendGame, + SendInvoice, + SendLocation, + SendMediaGroup, + SendMessage, + SendPhoto, + SendPoll, + SendSticker, + SendVenue, + SendVideo, + SendVideoNote, + SendVoice, +) from aiogram.types import Chat, ChatJoinRequest, User @@ -32,3 +55,96 @@ class TestChatJoinRequest: assert isinstance(api_method, DeclineChatJoinRequest) assert api_method.chat_id == chat_join_request.chat.id assert api_method.user_id == chat_join_request.from_user.id + + @pytest.mark.parametrize( + "alias_for_method,kwargs,method_class", + [ + ["answer_animation", dict(animation="animation"), SendAnimation], + ["answer_audio", dict(audio="audio"), SendAudio], + ["answer_contact", dict(phone_number="+000000000000", first_name="Test"), SendContact], + ["answer_document", dict(document="document"), SendDocument], + ["answer_game", dict(game_short_name="game"), SendGame], + [ + "answer_invoice", + dict( + title="title", + description="description", + payload="payload", + provider_token="provider_token", + start_parameter="start_parameter", + currency="currency", + prices=[], + ), + SendInvoice, + ], + ["answer_location", dict(latitude=0.42, longitude=0.42), SendLocation], + ["answer_media_group", dict(media=[]), SendMediaGroup], + ["answer", dict(text="test"), SendMessage], + ["answer_photo", dict(photo="photo"), SendPhoto], + ["answer_poll", dict(question="Q?", options=[]), SendPoll], + ["answer_dice", dict(), SendDice], + ["answer_sticker", dict(sticker="sticker"), SendSticker], + ["answer_sticker", dict(sticker="sticker"), SendSticker], + [ + "answer_venue", + dict( + latitude=0.42, + longitude=0.42, + title="title", + address="address", + ), + SendVenue, + ], + ["answer_video", dict(video="video"), SendVideo], + ["answer_video_note", dict(video_note="video_note"), SendVideoNote], + ["answer_voice", dict(voice="voice"), SendVoice], + ], + ) + @pytest.mark.parametrize("suffix", ["", "_pm"]) + def test_answer_aliases( + self, + alias_for_method: str, + suffix: str, + kwargs: Dict[str, Any], + method_class: Type[ + Union[ + SendAnimation, + SendAudio, + SendContact, + SendDocument, + SendGame, + SendInvoice, + SendLocation, + SendMediaGroup, + SendMessage, + SendPhoto, + SendPoll, + SendSticker, + SendSticker, + SendVenue, + SendVideo, + SendVideoNote, + SendVoice, + ] + ], + ): + event = ChatJoinRequest( + chat=Chat(id=-42, type="channel"), + from_user=User(id=42, is_bot=False, first_name="Test"), + user_chat_id=42, + date=datetime.datetime.now(), + ) + + alias = getattr(event, alias_for_method + suffix) + assert callable(alias) + + api_method = alias(**kwargs) + assert isinstance(api_method, method_class) + + if suffix == "_pm": + assert api_method.chat_id == event.user_chat_id + else: + assert api_method.chat_id == event.chat.id + + for key, value in kwargs.items(): + assert getattr(api_method, key) == value diff --git a/tests/test_api/test_types/test_chat_member_updated.py b/tests/test_api/test_types/test_chat_member_updated.py new file mode 100644 index 00000000..2d9c9a94 --- /dev/null +++ b/tests/test_api/test_types/test_chat_member_updated.py @@ -0,0 +1,123 @@ +import datetime +from typing import Any, Dict, Type, Union + +import pytest + +from aiogram.methods import ( + SendAnimation, + SendAudio, + SendContact, + SendDice, + SendDocument, + SendGame, + SendInvoice, + SendLocation, + SendMediaGroup, + SendMessage, + SendPhoto, + SendPoll, + SendSticker, + SendVenue, + SendVideo, + SendVideoNote, + SendVoice, +) +from aiogram.types import ( + Chat, + ChatMemberLeft, + ChatMemberMember, + ChatMemberUpdated, + User, +) + + +class TestChatMemberUpdated: + @pytest.mark.parametrize( + "alias_for_method,kwargs,method_class", + [ + ["answer_animation", dict(animation="animation"), SendAnimation], + ["answer_audio", dict(audio="audio"), SendAudio], + ["answer_contact", dict(phone_number="+000000000000", first_name="Test"), SendContact], + ["answer_document", dict(document="document"), SendDocument], + ["answer_game", dict(game_short_name="game"), SendGame], + [ + "answer_invoice", + dict( + title="title", + description="description", + payload="payload", + provider_token="provider_token", + start_parameter="start_parameter", + currency="currency", + prices=[], + ), + SendInvoice, + ], + ["answer_location", dict(latitude=0.42, longitude=0.42), SendLocation], + ["answer_media_group", dict(media=[]), SendMediaGroup], + ["answer", dict(text="test"), SendMessage], + ["answer_photo", dict(photo="photo"), SendPhoto], + ["answer_poll", dict(question="Q?", options=[]), SendPoll], + ["answer_dice", dict(), SendDice], + ["answer_sticker", dict(sticker="sticker"), SendSticker], + ["answer_sticker", dict(sticker="sticker"), SendSticker], + [ + "answer_venue", + dict( + latitude=0.42, + longitude=0.42, + title="title", + address="address", + ), + SendVenue, + ], + ["answer_video", dict(video="video"), SendVideo], + ["answer_video_note", dict(video_note="video_note"), SendVideoNote], + ["answer_voice", dict(voice="voice"), SendVoice], + ], + ) + def test_answer_aliases( + self, + alias_for_method: str, + kwargs: Dict[str, Any], + method_class: Type[ + Union[ + SendAnimation, + SendAudio, + SendContact, + SendDocument, + SendGame, + SendInvoice, + SendLocation, + SendMediaGroup, + SendMessage, + SendPhoto, + SendPoll, + SendSticker, + SendSticker, + SendVenue, + SendVideo, + SendVideoNote, + SendVoice, + ] + ], + ): + user = User(id=42, is_bot=False, first_name="Test") + event = ChatMemberUpdated( + chat=Chat(id=42, type="private"), + from_user=User(id=42, is_bot=False, first_name="Test"), + date=datetime.datetime.now(), + old_chat_member=ChatMemberLeft(user=user), + new_chat_member=ChatMemberMember(user=user), + ) + + alias = getattr(event, alias_for_method) + assert callable(alias) + + api_method = alias(**kwargs) + assert isinstance(api_method, method_class) + + assert api_method.chat_id == event.chat.id + + for key, value in kwargs.items(): + assert getattr(api_method, key) == value diff --git a/tests/test_api/test_types/test_input_file.py b/tests/test_api/test_types/test_input_file.py index 05391a8e..e8716f84 100644 --- a/tests/test_api/test_types/test_input_file.py +++ b/tests/test_api/test_types/test_input_file.py @@ -4,6 +4,7 @@ from aresponses import ResponsesMockServer from aiogram import Bot from aiogram.types import BufferedInputFile, FSInputFile, InputFile, URLInputFile +from tests.mocked_bot import MockedBot class TestInputFile: @@ -11,19 +12,18 @@ class TestInputFile: file = FSInputFile(__file__) assert isinstance(file, InputFile) - assert isinstance(file, AsyncIterable) assert file.filename is not None assert file.filename.startswith("test_") assert file.filename.endswith(".py") assert file.chunk_size > 0 - async def test_fs_input_file_readable(self): + async def test_fs_input_file_readable(self, bot: MockedBot): file = FSInputFile(__file__, chunk_size=1) assert file.chunk_size == 1 size = 0 - async for chunk in file: + async for chunk in file.read(bot): chunk_size = len(chunk) assert chunk_size == 1 size += chunk_size @@ -33,15 +33,14 @@ class TestInputFile: file = BufferedInputFile(b"\f" * 10, filename="file.bin") assert isinstance(file, InputFile) - assert isinstance(file, AsyncIterable) assert file.filename == "file.bin" assert isinstance(file.data, bytes) - async def test_buffered_input_file_readable(self): + async def test_buffered_input_file_readable(self, bot: MockedBot): file = BufferedInputFile(b"\f" * 10, filename="file.bin", chunk_size=1) size = 0 - async for chunk in file: + async for chunk in file.read(bot): chunk_size = len(chunk) assert chunk_size == 1 size += chunk_size @@ -51,36 +50,36 @@ class TestInputFile: file = BufferedInputFile.from_file(__file__, chunk_size=10) assert isinstance(file, InputFile) - assert isinstance(file, AsyncIterable) assert file.filename is not None assert file.filename.startswith("test_") assert file.filename.endswith(".py") assert isinstance(file.data, bytes) assert file.chunk_size == 10 - async def test_buffered_input_file_from_file_readable(self): + async def test_buffered_input_file_from_file_readable(self, bot: MockedBot): file = BufferedInputFile.from_file(__file__, chunk_size=1) size = 0 - async for chunk in file: + async for chunk in file.read(bot): chunk_size = len(chunk) assert chunk_size == 1 size += chunk_size assert size > 0 - async def test_uri_input_file(self, aresponses: ResponsesMockServer): + async def test_url_input_file(self, aresponses: ResponsesMockServer): aresponses.add( - aresponses.ANY, aresponses.ANY, "get", aresponses.Response(status=200, body=b"\f" * 10) + aresponses.ANY, + aresponses.ANY, + "get", + aresponses.Response(status=200, body=b"\f" * 10), ) + async with Bot(token="42:TEST").context() as bot: + file = URLInputFile("https://test.org/", chunk_size=1) - Bot.set_current(Bot("42:TEST")) - - file = URLInputFile("https://test.org/", chunk_size=1) - - size = 0 - async for chunk in file: - assert chunk == b"\f" - chunk_size = len(chunk) - assert chunk_size == 1 - size += chunk_size - assert size == 10 + size = 0 + async for chunk in file.read(bot): + assert chunk == b"\f" + chunk_size = len(chunk) + assert chunk_size == 1 + size += chunk_size + assert size == 10 diff --git a/tests/test_api/test_types/test_message.py b/tests/test_api/test_types/test_message.py index 1b15327f..7efe6c89 100644 --- a/tests/test_api/test_types/test_message.py +++ b/tests/test_api/test_types/test_message.py @@ -3,6 +3,7 @@ from typing import Any, Dict, Optional, Type, Union import pytest +from aiogram.enums import ParseMode from aiogram.methods import ( CopyMessage, DeleteMessage, @@ -35,9 +36,11 @@ from aiogram.methods import ( UnpinChatMessage, ) from aiogram.types import ( + UNSET_PARSE_MODE, Animation, Audio, Chat, + ChatShared, Contact, Dice, Document, @@ -60,8 +63,10 @@ from aiogram.types import ( PollOption, ProximityAlertTriggered, Sticker, + Story, SuccessfulPayment, User, + UserShared, Venue, Video, VideoChatEnded, @@ -439,6 +444,29 @@ TEST_FORUM_TOPIC_REOPENED = Message( from_user=User(id=42, is_bot=False, first_name="Test"), forum_topic_reopened=ForumTopicReopened(), ) +TEST_USER_SHARED = Message( + message_id=42, + date=datetime.datetime.now(), + chat=Chat(id=42, type="private"), + from_user=User(id=42, is_bot=False, first_name="Test"), + user_shared=UserShared(request_id=42, user_id=42), +) +TEST_CHAT_SHARED = Message( + message_id=42, + date=datetime.datetime.now(), + chat=Chat(id=42, type="private"), + from_user=User(id=42, is_bot=False, first_name="Test"), + chat_shared=ChatShared(request_id=42, chat_id=42), +) +TEST_MESSAGE_STORY = Message( + message_id=42, + date=datetime.datetime.now(), + chat=Chat(id=42, type="private"), + from_user=User(id=42, is_bot=False, first_name="Test"), + story=Story(), + forward_signature="Test", + forward_date=datetime.datetime.now(), +) TEST_MESSAGE_UNKNOWN = Message( message_id=42, date=datetime.datetime.now(), @@ -498,6 +526,9 @@ class TestMessage: [TEST_FORUM_TOPIC_EDITED, ContentType.FORUM_TOPIC_EDITED], [TEST_FORUM_TOPIC_CLOSED, ContentType.FORUM_TOPIC_CLOSED], [TEST_FORUM_TOPIC_REOPENED, ContentType.FORUM_TOPIC_REOPENED], + [TEST_USER_SHARED, ContentType.USER_SHARED], + [TEST_CHAT_SHARED, ContentType.CHAT_SHARED], + [TEST_MESSAGE_STORY, ContentType.STORY], [TEST_MESSAGE_UNKNOWN, ContentType.UNKNOWN], ], ) @@ -620,6 +651,7 @@ class TestMessage: [TEST_MESSAGE_CONTACT, SendContact], [TEST_MESSAGE_VENUE, SendVenue], [TEST_MESSAGE_LOCATION, SendLocation], + [TEST_MESSAGE_STORY, ForwardMessage], [TEST_MESSAGE_NEW_CHAT_MEMBERS, None], [TEST_MESSAGE_LEFT_CHAT_MEMBER, None], [TEST_MESSAGE_INVOICE, None], @@ -642,6 +674,8 @@ class TestMessage: [TEST_MESSAGE_VIDEO_CHAT_ENDED, None], [TEST_MESSAGE_VIDEO_CHAT_PARTICIPANTS_INVITED, None], [TEST_MESSAGE_DICE, SendDice], + [TEST_USER_SHARED, None], + [TEST_CHAT_SHARED, None], [TEST_MESSAGE_UNKNOWN, None], ], ) @@ -656,10 +690,44 @@ class TestMessage: return method = message.send_copy(chat_id=42) - if method: - assert isinstance(method, expected_method) + assert isinstance(method, expected_method) + if hasattr(method, "parse_mode"): + # default parse mode in send_copy + assert method.parse_mode is None # TODO: Check additional fields + @pytest.mark.parametrize( + "custom_parse_mode", + [ + UNSET_PARSE_MODE, + *list(ParseMode), + ], + ) + @pytest.mark.parametrize( + "message,expected_method", + [ + [TEST_MESSAGE_TEXT, SendMessage], + [TEST_MESSAGE_AUDIO, SendAudio], + [TEST_MESSAGE_ANIMATION, SendAnimation], + [TEST_MESSAGE_DOCUMENT, SendDocument], + [TEST_MESSAGE_PHOTO, SendPhoto], + [TEST_MESSAGE_VIDEO, SendVideo], + [TEST_MESSAGE_VOICE, SendVoice], + ], + ) + def test_send_copy_custom_parse_mode( + self, + message: Message, + expected_method: Optional[Type[TelegramMethod]], + custom_parse_mode: Optional[str], + ): + method = message.send_copy( + chat_id=42, + parse_mode=custom_parse_mode, + ) + assert isinstance(method, expected_method) + assert method.parse_mode == custom_parse_mode + def test_edit_text(self): message = Message( message_id=42, chat=Chat(id=42, type="private"), date=datetime.datetime.now() diff --git a/tests/test_api/test_types/test_reply_keyboard_remove.py b/tests/test_api/test_types/test_reply_keyboard_remove.py index 984932a5..1d252cc5 100644 --- a/tests/test_api/test_types/test_reply_keyboard_remove.py +++ b/tests/test_api/test_types/test_reply_keyboard_remove.py @@ -1,3 +1,5 @@ +from typing import Dict + import pytest from aiogram.types import ReplyKeyboardRemove @@ -10,12 +12,12 @@ class TestReplyKeyboardRemove: def test_remove_keyboard_default_is_true(self): assert ( - ReplyKeyboardRemove.__fields__["remove_keyboard"].default is True + ReplyKeyboardRemove.model_fields["remove_keyboard"].default is True ), "Remove keyboard has incorrect default value!" @pytest.mark.parametrize( "kwargs,expected", [[{}, True], [{"remove_keyboard": True}, True]], ) - def test_remove_keyboard_values(self, kwargs, expected): + def test_remove_keyboard_values(self, kwargs: Dict[str, bool], expected: bool): assert ReplyKeyboardRemove(**kwargs).remove_keyboard is expected diff --git a/tests/test_dispatcher/test_dispatcher.py b/tests/test_dispatcher/test_dispatcher.py index 41ecef1b..b85cfc98 100644 --- a/tests/test_dispatcher/test_dispatcher.py +++ b/tests/test_dispatcher/test_dispatcher.py @@ -187,8 +187,9 @@ class TestDispatcher: async def test_process_update_empty(self, bot: MockedBot): dispatcher = Dispatcher() - result = await dispatcher._process_update(bot=bot, update=Update(update_id=42)) - assert not result + with pytest.warns(RuntimeWarning, match="Detected unknown update type") as record: + result = await dispatcher._process_update(bot=bot, update=Update(update_id=42)) + assert not result async def test_process_update_handled(self, bot: MockedBot): dispatcher = Dispatcher() @@ -197,7 +198,8 @@ class TestDispatcher: async def update_handler(update: Update): pass - assert await dispatcher._process_update(bot=bot, update=Update(update_id=42)) + with pytest.warns(RuntimeWarning, match="Detected unknown update type"): + assert await dispatcher._process_update(bot=bot, update=Update(update_id=42)) @pytest.mark.parametrize( "event_type,update,has_chat,has_user", @@ -460,7 +462,9 @@ class TestDispatcher: @observer() async def my_handler(event: Any, **kwargs: Any): - assert event == getattr(update, event_type) + assert event.model_dump(exclude_defaults=True) == getattr( + update, event_type + ).model_dump(exclude_defaults=True) if has_chat: assert kwargs["event_chat"] if has_user: @@ -469,15 +473,19 @@ class TestDispatcher: result = await router.feed_update(bot, update, test="PASS") assert isinstance(result, dict) - assert result["event_update"] == update + assert result["event_update"].model_dump(exclude_defaults=True) == update.model_dump( + exclude_defaults=True + ) assert result["event_router"] == router assert result["test"] == "PASS" async def test_listen_unknown_update(self): dp = Dispatcher() - - with pytest.raises(SkipHandler): + pattern = "Detected unknown update type" + with pytest.raises(SkipHandler), pytest.warns(RuntimeWarning, match=pattern) as record: await dp._listen_update(Update(update_id=42)) + if not record: + pytest.fail("Expected 'Detected unknown update type' warning.") async def test_listen_unhandled_update(self): dp = Dispatcher() @@ -532,7 +540,9 @@ class TestDispatcher: ) result = await dp.feed_update(bot, update, test="PASS") assert isinstance(result, dict) - assert result["event_update"] == update + assert result["event_update"].model_dump(exclude_defaults=True) == update.model_dump( + exclude_defaults=True + ) assert result["event_router"] == router1 assert result["test"] == "PASS" @@ -602,7 +612,9 @@ class TestDispatcher: async def update_handler(update: Update): raise Exception("Kaboom!") - assert await dispatcher._process_update(bot=bot, update=Update(update_id=42)) + with pytest.warns(RuntimeWarning, match="Detected unknown update type"): + assert await dispatcher._process_update(bot=bot, update=Update(update_id=42)) + log_records = [rec.message for rec in caplog.records] assert len(log_records) == 1 assert "Cause exception while process update" in log_records[0] @@ -669,6 +681,7 @@ class TestDispatcher: async def test_start_polling(self, bot: MockedBot): dispatcher = Dispatcher() + dispatcher.workflow_data["bot"] = 42 with pytest.raises( ValueError, match="At least one bot instance is required to start polling" ): @@ -702,6 +715,8 @@ class TestDispatcher: mocked_emit_startup.assert_awaited() mocked_process_update.assert_awaited() mocked_emit_shutdown.assert_awaited() + assert dispatcher.workflow_data["bot"] == 42 + assert mocked_emit_shutdown.call_args.kwargs["bot"] == bot async def test_stop_polling(self): dispatcher = Dispatcher() @@ -825,12 +840,17 @@ class TestDispatcher: dispatcher = Dispatcher() dispatcher.message.register(invalid_message_handler) - response = await dispatcher.feed_webhook_update(bot, RAW_UPDATE, _timeout=0.1) - assert response is None - await asyncio.sleep(0.5) + pattern = r"Detected slow response into webhook" + with pytest.warns(RuntimeWarning, match=pattern) as record: + response = await dispatcher.feed_webhook_update(bot, RAW_UPDATE, _timeout=0.1) + assert response is None + await asyncio.sleep(0.5) - log_records = [rec.message for rec in caplog.records] - assert "Cause exception while process update" in log_records[0] + log_records = [rec.message for rec in caplog.records] + assert "Cause exception while process update" in log_records[0] + + if not record: + pytest.fail("Expected 'Detected slow response into webhook' warning.") def test_specify_updates_calculation(self): def simple_msg_handler() -> None: diff --git a/tests/test_dispatcher/test_event/test_handler.py b/tests/test_dispatcher/test_event/test_handler.py index f7000d8e..c2b11cff 100644 --- a/tests/test_dispatcher/test_event/test_handler.py +++ b/tests/test_dispatcher/test_event/test_handler.py @@ -1,5 +1,5 @@ import functools -from typing import Any, Dict, Union +from typing import Any, Dict, Union, Callable, Set import pytest from magic_filter import F as A @@ -61,9 +61,9 @@ class TestCallableMixin: pytest.param(SyncCallable(), {"self", "foo", "bar", "baz"}), ], ) - def test_init_args_spec(self, callback, args): + def test_init_args_spec(self, callback: Callable, args: Set[str]): obj = CallableMixin(callback) - assert set(obj.spec.args) == args + assert set(obj.params) == args def test_init_decorated(self): def decorator(func): @@ -85,9 +85,9 @@ class TestCallableMixin: obj1 = CallableMixin(callback1) obj2 = CallableMixin(callback2) - assert set(obj1.spec.args) == {"foo", "bar", "baz"} + assert set(obj1.params) == {"foo", "bar", "baz"} assert obj1.callback == callback1 - assert set(obj2.spec.args) == {"foo", "bar", "baz"} + assert set(obj2.params) == {"foo", "bar", "baz"} assert obj2.callback == callback2 @pytest.mark.parametrize( @@ -124,7 +124,9 @@ class TestCallableMixin: ), ], ) - def test_prepare_kwargs(self, callback, kwargs, result): + def test_prepare_kwargs( + self, callback: Callable, kwargs: Dict[str, Any], result: Dict[str, Any] + ): obj = CallableMixin(callback) assert obj._prepare_kwargs(kwargs) == result diff --git a/tests/test_dispatcher/test_event/test_telegram.py b/tests/test_dispatcher/test_event/test_telegram.py index 973fa17c..713aabb8 100644 --- a/tests/test_dispatcher/test_event/test_telegram.py +++ b/tests/test_dispatcher/test_event/test_telegram.py @@ -5,7 +5,7 @@ from typing import Any, Dict, NoReturn, Optional, Union import pytest from pydantic import BaseModel -from aiogram.dispatcher.event.bases import REJECTED, SkipHandler +from aiogram.dispatcher.event.bases import UNHANDLED, SkipHandler from aiogram.dispatcher.event.handler import HandlerObject from aiogram.dispatcher.event.telegram import TelegramEventObserver from aiogram.dispatcher.router import Router @@ -220,8 +220,8 @@ class TestTelegramEventObserver: r1.message.register(handler) r2.message.register(handler) - assert await r1.message.trigger(None) is REJECTED - assert await r2.message.trigger(None) is None + assert await r1.propagate_event("message", None) is UNHANDLED + assert await r2.propagate_event("message", None) is None async def test_global_filter_in_nested_router(self): r1 = Router() @@ -234,4 +234,4 @@ class TestTelegramEventObserver: r1.message.filter(lambda evt: False) r2.message.register(handler) - assert await r1.message.trigger(None) is REJECTED + assert await r1.message.trigger(None) is UNHANDLED diff --git a/tests/test_filters/test_chat_member_updated.py b/tests/test_filters/test_chat_member_updated.py index f3fdce66..46da8b8e 100644 --- a/tests/test_filters/test_chat_member_updated.py +++ b/tests/test_filters/test_chat_member_updated.py @@ -1,4 +1,5 @@ from datetime import datetime +from typing import Optional import pytest @@ -12,7 +13,21 @@ from aiogram.filters.chat_member_updated import ( _MemberStatusMarker, _MemberStatusTransition, ) -from aiogram.types import Chat, ChatMember, ChatMemberUpdated, User +from aiogram.types import ( + Chat, + ChatMember, + ChatMemberAdministrator, + ChatMemberLeft, + ChatMemberMember, + ChatMemberRestricted, + ChatMemberUpdated, + User, +) + + +class ChatMemberCustom(ChatMember): + status: str + is_member: Optional[bool] = None class TestMemberStatusMarker: @@ -104,11 +119,11 @@ class TestMemberStatusMarker: @pytest.mark.parametrize( "name,is_member,member,result", [ - ["test", None, ChatMember(status="member"), False], - ["test", None, ChatMember(status="test"), True], - ["test", True, ChatMember(status="test"), False], - ["test", True, ChatMember(status="test", is_member=True), True], - ["test", True, ChatMember(status="test", is_member=False), False], + ["test", None, ChatMemberCustom(status="member"), False], + ["test", None, ChatMemberCustom(status="test"), True], + ["test", True, ChatMemberCustom(status="test"), False], + ["test", True, ChatMemberCustom(status="test", is_member=True), True], + ["test", True, ChatMemberCustom(status="test", is_member=False), False], ], ) def test_check(self, name, is_member, member, result): @@ -235,29 +250,34 @@ class TestMemberStatusTransition: @pytest.mark.parametrize( "transition,old,new,result", [ - [JOIN_TRANSITION, ChatMember(status="left"), ChatMember(status="member"), True], [ JOIN_TRANSITION, - ChatMember(status="restricted", is_member=True), - ChatMember(status="member"), - False, - ], - [ - JOIN_TRANSITION, - ChatMember(status="restricted", is_member=False), - ChatMember(status="member"), + ChatMemberCustom(status="left"), + ChatMemberCustom(status="member"), True, ], [ JOIN_TRANSITION, - ChatMember(status="member"), - ChatMember(status="restricted", is_member=False), + ChatMemberCustom(status="restricted", is_member=True), + ChatMemberCustom(status="member"), + False, + ], + [ + JOIN_TRANSITION, + ChatMemberCustom(status="restricted", is_member=False), + ChatMemberCustom(status="member"), + True, + ], + [ + JOIN_TRANSITION, + ChatMemberCustom(status="member"), + ChatMemberCustom(status="restricted", is_member=False), False, ], [ LEAVE_TRANSITION, - ChatMember(status="member"), - ChatMember(status="restricted", is_member=False), + ChatMemberCustom(status="member"), + ChatMemberCustom(status="restricted", is_member=False), True, ], ], @@ -267,84 +287,91 @@ class TestMemberStatusTransition: class TestChatMemberUpdatedStatusFilter: + USER = User(id=42, first_name="Test", is_bot=False) + PARAMS = { + "user": USER, + "until_date": datetime.now(), + "is_anonymous": True, + "custom_title": "title", + "can_be_edited": True, + "can_manage_chat": True, + "can_delete_messages": True, + "can_manage_video_chats": True, + "can_restrict_members": True, + "can_promote_members": True, + "can_change_info": True, + "can_invite_users": True, + "can_post_messages": True, + "can_edit_messages": True, + "can_pin_messages": True, + "can_manage_topics": True, + "can_send_messages": True, + "can_send_audios": True, + "can_send_documents": True, + "can_send_photos": True, + "can_send_videos": True, + "can_send_video_notes": True, + "can_send_voice_notes": True, + "can_send_polls": True, + "can_send_other_messages": True, + "can_add_web_page_previews": True, + } + @pytest.mark.parametrize( "transition,old,new,result", [ - [JOIN_TRANSITION, ChatMember(status="left"), ChatMember(status="member"), True], [ JOIN_TRANSITION, - ChatMember(status="restricted", is_member=True), - ChatMember(status="member"), - False, - ], - [ - JOIN_TRANSITION, - ChatMember(status="restricted", is_member=False), - ChatMember(status="member"), + ChatMemberLeft(status="left", **PARAMS), + ChatMemberMember(status="member", **PARAMS), True, ], [ JOIN_TRANSITION, - ChatMember(status="member"), - ChatMember(status="restricted", is_member=False), + ChatMemberRestricted(status="restricted", is_member=True, **PARAMS), + ChatMemberMember(status="member", **PARAMS), + False, + ], + [ + JOIN_TRANSITION, + ChatMemberRestricted(status="restricted", is_member=False, **PARAMS), + ChatMemberMember(status="member", **PARAMS), + True, + ], + [ + JOIN_TRANSITION, + ChatMemberMember(status="member", **PARAMS), + ChatMemberRestricted(status="restricted", is_member=False, **PARAMS), False, ], [ LEAVE_TRANSITION, - ChatMember(status="member"), - ChatMember(status="restricted", is_member=False), + ChatMemberMember(status="member", **PARAMS), + ChatMemberRestricted(status="restricted", is_member=False, **PARAMS), True, ], [ ADMINISTRATOR, - ChatMember(status="member"), - ChatMember(status="administrator"), + ChatMemberMember(status="member", **PARAMS), + ChatMemberAdministrator(status="administrator", **PARAMS), True, ], [ IS_MEMBER, - ChatMember(status="restricted", is_member=False), - ChatMember(status="member"), + ChatMemberRestricted(status="restricted", is_member=False, **PARAMS), + ChatMemberMember(status="member", **PARAMS), True, ], ], ) async def test_call(self, transition, old, new, result): updated_filter = ChatMemberUpdatedFilter(member_status_changed=transition) - user = User(id=42, first_name="Test", is_bot=False) - update = { - "user": user, - "until_date": datetime.now(), - "is_anonymous": True, - "custom_title": True, - "can_be_edited": True, - "can_manage_chat": True, - "can_delete_messages": True, - "can_manage_video_chats": True, - "can_restrict_members": True, - "can_promote_members": True, - "can_change_info": True, - "can_invite_users": True, - "can_post_messages": True, - "can_edit_messages": True, - "can_pin_messages": True, - "can_manage_topics": True, - "can_send_messages": True, - "can_send_audios": True, - "can_send_documents": True, - "can_send_photos": True, - "can_send_videos": True, - "can_send_video_notes": True, - "can_send_voice_notes": True, - "can_send_polls": True, - "can_send_other_messages": True, - "can_add_web_page_previews": True, - } + event = ChatMemberUpdated( chat=Chat(id=42, type="test"), - from_user=user, - old_chat_member=old.copy(update=update), - new_chat_member=new.copy(update=update), + from_user=self.USER, + old_chat_member=old, + new_chat_member=new, date=datetime.now(), ) diff --git a/tests/test_filters/test_exception.py b/tests/test_filters/test_exception.py index be056b72..dfc7fa80 100644 --- a/tests/test_filters/test_exception.py +++ b/tests/test_filters/test_exception.py @@ -72,4 +72,5 @@ class TestDispatchException: async def handler0(event): return "Handled" - assert await dp.feed_update(bot, Update(update_id=0)) == "Handled" + with pytest.warns(RuntimeWarning, match="Detected unknown update type"): + assert await dp.feed_update(bot, Update(update_id=0)) == "Handled" diff --git a/tests/test_fsm/storage/test_isolation.py b/tests/test_fsm/storage/test_isolation.py index 8212c955..8be303c4 100644 --- a/tests/test_fsm/storage/test_isolation.py +++ b/tests/test_fsm/storage/test_isolation.py @@ -1,6 +1,10 @@ +from unittest import mock +from unittest.mock import AsyncMock, patch + import pytest from aiogram.fsm.storage.base import BaseEventIsolation, StorageKey +from aiogram.fsm.storage.redis import RedisEventIsolation from tests.mocked_bot import MockedBot @@ -24,4 +28,36 @@ class TestIsolations: storage_key: StorageKey, ): async with isolation.lock(key=storage_key): - assert True, "You are kidding me?" + assert True, "Are you kidding me?" + + +class TestRedisEventIsolation: + def test_init_without_key_builder(self): + redis = AsyncMock() + isolation = RedisEventIsolation(redis=redis) + assert isolation.redis is redis + + assert isolation.key_builder is not None + + def test_init_with_key_builder(self): + redis = AsyncMock() + key_builder = AsyncMock() + isolation = RedisEventIsolation(redis=redis, key_builder=key_builder) + assert isolation.redis is redis + assert isolation.key_builder is key_builder + + def test_create_from_url(self): + with patch("redis.asyncio.connection.ConnectionPool.from_url") as pool: + isolation = RedisEventIsolation.from_url("redis://localhost:6379/0") + assert isinstance(isolation, RedisEventIsolation) + assert isolation.redis is not None + assert isolation.key_builder is not None + + assert pool.called_once_with("redis://localhost:6379/0") + + async def test_close(self): + isolation = RedisEventIsolation(redis=AsyncMock()) + await isolation.close() + + # close is not called because connection should be closed from the storage + # assert isolation.redis.close.called_once() diff --git a/tests/test_fsm/test_strategy.py b/tests/test_fsm/test_strategy.py index 3dab2b3d..1f6f2e93 100644 --- a/tests/test_fsm/test_strategy.py +++ b/tests/test_fsm/test_strategy.py @@ -24,9 +24,12 @@ class TestStrategy: [FSMStrategy.GLOBAL_USER, CHAT, PRIVATE], [FSMStrategy.GLOBAL_USER, PRIVATE, PRIVATE], [FSMStrategy.GLOBAL_USER, THREAD, PRIVATE], - [FSMStrategy.USER_IN_THREAD, CHAT, CHAT], - [FSMStrategy.USER_IN_THREAD, PRIVATE, PRIVATE], - [FSMStrategy.USER_IN_THREAD, THREAD, THREAD], + [FSMStrategy.USER_IN_TOPIC, CHAT, CHAT], + [FSMStrategy.USER_IN_TOPIC, PRIVATE, PRIVATE], + [FSMStrategy.USER_IN_TOPIC, THREAD, THREAD], + [FSMStrategy.CHAT_TOPIC, CHAT, (CHAT_ID, CHAT_ID, None)], + [FSMStrategy.CHAT_TOPIC, PRIVATE, PRIVATE], + [FSMStrategy.CHAT_TOPIC, THREAD, (CHAT_ID, CHAT_ID, THREAD_ID)], ], ) def test_strategy(self, strategy, case, expected): diff --git a/tests/test_handler/test_base.py b/tests/test_handler/test_base.py index f79a6a6b..5f3b1225 100644 --- a/tests/test_handler/test_base.py +++ b/tests/test_handler/test_base.py @@ -29,15 +29,17 @@ class TestBaseClassBasedHandler: async def test_bot_from_context(self): event = Update(update_id=42) - handler = MyHandler(event=event, key=42) bot = Bot("42:TEST") - - with pytest.raises(LookupError): - handler.bot - - Bot.set_current(bot) + handler = MyHandler(event=event, key=42, bot=bot) assert handler.bot == bot + async def test_bot_from_context_missing(self): + event = Update(update_id=42) + handler = MyHandler(event=event, key=42) + + with pytest.raises(RuntimeError): + handler.bot + async def test_bot_from_data(self): event = Update(update_id=42) bot = Bot("42:TEST") diff --git a/tests/test_issues/__init__.py b/tests/test_issues/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/test_issues/test_1317_state_vs_isolation.py b/tests/test_issues/test_1317_state_vs_isolation.py new file mode 100644 index 00000000..31613fa4 --- /dev/null +++ b/tests/test_issues/test_1317_state_vs_isolation.py @@ -0,0 +1,81 @@ +import asyncio +from datetime import datetime + +from aiogram import Dispatcher +from aiogram.filters import Command +from aiogram.fsm.context import FSMContext +from aiogram.fsm.state import State, StatesGroup +from aiogram.fsm.storage.memory import SimpleEventIsolation +from aiogram.types import Chat, Message, Update, User +from tests.mocked_bot import MockedBot + + +class TestStateVSIsolation: + async def test_issue(self, bot: MockedBot): + dispatcher = Dispatcher(events_isolation=SimpleEventIsolation()) + first = 0 + second = 0 + third = 0 + stack = [] + + class TestState(StatesGroup): + foo = State() + bar = State() + baz = State() + + @dispatcher.message(Command("test")) + async def command_top(message: Message, state: FSMContext): + nonlocal first + first += 1 + stack.append("command") + await state.set_state(TestState.foo) + + @dispatcher.message(TestState.foo) + async def handle_foo(message: Message, state: FSMContext): + nonlocal second + second += 1 + stack.append("foo") + await state.set_state(TestState.bar) + + @dispatcher.message(TestState.bar) + async def handle_bar(message: Message, state: FSMContext): + nonlocal third + third += 1 + stack.append("bar") + await state.set_state(None) + + @dispatcher.message() + async def handle_all(message: Message): + stack.append("all") + + await asyncio.gather( + *( + dispatcher.feed_update(bot, update) + for update in [ + create_message_update(index=1, text="/test"), + create_message_update(index=2, text="foo"), + create_message_update(index=3, text="bar"), + create_message_update(index=4, text="baz"), + ] + ) + ) + + # Before bug fix: + # first == 1, second == 3, third == 0, stack == ["command", "foo", "foo", "foo"] + assert first == 1 + assert second == 1 + assert third == 1 + assert stack == ["command", "foo", "bar", "all"] + + +def create_message_update(index: int, text: str): + return Update( + update_id=index, + message=Message( + message_id=index, + date=datetime.now(), + chat=Chat(id=42, type="private"), + from_user=User(id=42, is_bot=False, first_name="Test", username="test"), + text=text, + ), + ) diff --git a/tests/test_issues/test_bot_context_is_usable.py b/tests/test_issues/test_bot_context_is_usable.py new file mode 100644 index 00000000..f3db6b99 --- /dev/null +++ b/tests/test_issues/test_bot_context_is_usable.py @@ -0,0 +1,27 @@ +from datetime import datetime + +from aiogram import Dispatcher, Router +from aiogram.enums import ChatType +from aiogram.filters import Command +from aiogram.methods import SendMessage +from aiogram.types import Chat, Message, Update, User +from tests.mocked_bot import MockedBot + +issue_router = Router() + + +@issue_router.message(Command("test")) +async def my_handler(message: Message): + await message.answer("PASS") + return True + + +async def test_something(bot: MockedBot): + dp = Dispatcher() + dp.include_router(issue_router) + bot.add_result_for(method=SendMessage, ok=True) + chat = Chat(id=666, type=ChatType.PRIVATE) + user = User(id=666, is_bot=False, first_name="User") + msg = Message(message_id=1, date=datetime.now(), from_user=user, chat=chat, text="/test") + result = await dp.feed_update(bot, Update(message=msg, update_id=1)) + assert result is True diff --git a/tests/test_utils/test_chat_action.py b/tests/test_utils/test_chat_action.py index 517b8e90..b5c0a965 100644 --- a/tests/test_utils/test_chat_action.py +++ b/tests/test_utils/test_chat_action.py @@ -13,9 +13,9 @@ from tests.mocked_bot import MockedBot class TestChatActionSender: - async def test_wait(self, bot: Bot, loop: asyncio.BaseEventLoop): + async def test_wait(self, bot: Bot, event_loop: asyncio.BaseEventLoop): sender = ChatActionSender.typing(bot=bot, chat_id=42) - loop.call_soon(sender._close_event.set) + event_loop.call_soon(sender._close_event.set) start = time.monotonic() await sender._wait(1) assert time.monotonic() - start < 1 @@ -36,10 +36,9 @@ class TestChatActionSender: "upload_video_note", ], ) - @pytest.mark.parametrize("pass_bot", [True, False]) - async def test_factory(self, action: str, bot: MockedBot, pass_bot: bool): + async def test_factory(self, action: str, bot: MockedBot): sender_factory = getattr(ChatActionSender, action) - sender = sender_factory(chat_id=42, bot=bot if pass_bot else None) + sender = sender_factory(chat_id=42, bot=bot) assert isinstance(sender, ChatActionSender) assert sender.action == action assert sender.chat_id == 42 @@ -55,7 +54,11 @@ class TestChatActionSender: ): await asyncio.sleep(0.1) assert mocked_send_chat_action.await_count > 1 - mocked_send_chat_action.assert_awaited_with(action="typing", chat_id=42) + mocked_send_chat_action.assert_awaited_with( + action="typing", + chat_id=42, + message_thread_id=None, + ) async def test_contextmanager(self, bot: MockedBot): sender: ChatActionSender = ChatActionSender.typing(bot=bot, chat_id=42) diff --git a/tests/test_utils/test_deep_linking.py b/tests/test_utils/test_deep_linking.py index 3c1dbec2..85a6027b 100644 --- a/tests/test_utils/test_deep_linking.py +++ b/tests/test_utils/test_deep_linking.py @@ -1,11 +1,7 @@ import pytest -from aiogram.utils.deep_linking import ( - create_start_link, - create_startgroup_link, - decode_payload, - encode_payload, -) +from aiogram.utils.deep_linking import create_start_link, create_startgroup_link +from aiogram.utils.payload import decode_payload, encode_payload from tests.mocked_bot import MockedBot PAYLOADS = [ @@ -51,6 +47,33 @@ class TestDeepLinking: decoded = decode_payload(encoded) assert decoded == str(payload) + async def test_custom_encode_decode(self, payload: str): + from Cryptodome.Cipher import AES + from Cryptodome.Util.Padding import pad, unpad + + class Cryptor: + def __init__(self, key: str): + self.key = key.encode("utf-8") + self.mode = AES.MODE_ECB # never use ECB in strong systems obviously + self.size = 32 + + @property + def cipher(self): + return AES.new(self.key, self.mode) + + def encrypt(self, data: bytes) -> bytes: + return self.cipher.encrypt(pad(data, self.size)) + + def decrypt(self, data: bytes) -> bytes: + decrypted_data = self.cipher.decrypt(data) + return unpad(decrypted_data, self.size) + + cryptor = Cryptor("abcdefghijklmnop") + encoded_payload = encode_payload(payload, encoder=cryptor.encrypt) + decoded_payload = decode_payload(encoded_payload, decoder=cryptor.decrypt) + + assert decoded_payload == str(payload) + async def test_get_start_link_with_encoding(self, bot: MockedBot, wrong_payload: str): # define link link = await create_start_link(bot, wrong_payload, encode=True) diff --git a/tests/test_utils/test_formatting.py b/tests/test_utils/test_formatting.py new file mode 100644 index 00000000..f135aca6 --- /dev/null +++ b/tests/test_utils/test_formatting.py @@ -0,0 +1,365 @@ +import pytest + +from aiogram.enums import MessageEntityType +from aiogram.types import MessageEntity, User +from aiogram.utils.formatting import ( + Bold, + BotCommand, + CashTag, + Code, + CustomEmoji, + Email, + HashTag, + Italic, + PhoneNumber, + Pre, + Spoiler, + Strikethrough, + Text, + TextLink, + TextMention, + Underline, + Url, + _apply_entity, + as_key_value, + as_line, + as_list, + as_marked_list, + as_marked_section, + as_numbered_list, + as_numbered_section, + as_section, +) +from aiogram.utils.text_decorations import html_decoration + + +class TestNode: + @pytest.mark.parametrize( + "node,result", + [ + [ + Text("test"), + "test", + ], + [ + HashTag("#test"), + "#test", + ], + [ + CashTag("$TEST"), + "$TEST", + ], + [ + BotCommand("/test"), + "/test", + ], + [ + Url("https://example.com"), + "https://example.com", + ], + [ + Email("test@example.com"), + "test@example.com", + ], + [ + PhoneNumber("test"), + "test", + ], + [ + Bold("test"), + "test", + ], + [ + Italic("test"), + "test", + ], + [ + Underline("test"), + "test", + ], + [ + Strikethrough("test"), + "test", + ], + [ + Spoiler("test"), + "test", + ], + [ + Code("test"), + "test", + ], + [ + Pre("test", language="python"), + '
test
', + ], + [ + TextLink("test", url="https://example.com"), + 'test', + ], + [ + TextMention("test", user=User(id=42, is_bot=False, first_name="Test")), + 'test', + ], + [ + CustomEmoji("test", custom_emoji_id="42"), + 'test', + ], + ], + ) + def test_render_plain_only(self, node: Text, result: str): + text, entities = node.render() + if node.type: + assert len(entities) == 1 + entity = entities[0] + assert entity.type == node.type + + content = html_decoration.unparse(text, entities) + assert content == result + + def test_render_text(self): + node = Text("Hello, ", "World", "!") + text, entities = node.render() + assert text == "Hello, World!" + assert not entities + + def test_render_nested(self): + node = Text( + Text("Hello, ", Bold("World"), "!"), + "\n", + Text(Bold("This ", Underline("is"), " test", Italic("!"))), + "\n", + HashTag("#test"), + ) + text, entities = node.render() + assert text == "Hello, World!\nThis is test!\n#test" + assert entities == [ + MessageEntity(type="bold", offset=7, length=5), + MessageEntity(type="bold", offset=14, length=13), + MessageEntity(type="underline", offset=19, length=2), + MessageEntity(type="italic", offset=26, length=1), + MessageEntity(type="hashtag", offset=28, length=5), + ] + + def test_as_kwargs_default(self): + node = Text("Hello, ", Bold("World"), "!") + result = node.as_kwargs() + assert "text" in result + assert "entities" in result + assert "parse_mode" in result + + def test_as_kwargs_custom(self): + node = Text("Hello, ", Bold("World"), "!") + result = node.as_kwargs( + text_key="caption", + entities_key="custom_entities", + parse_mode_key="custom_parse_mode", + ) + assert "text" not in result + assert "caption" in result + assert "entities" not in result + assert "custom_entities" in result + assert "parse_mode" not in result + assert "custom_parse_mode" in result + + def test_as_html(self): + node = Text("Hello, ", Bold("World"), "!") + assert node.as_html() == "Hello, World!" + + def test_as_markdown(self): + node = Text("Hello, ", Bold("World"), "!") + assert node.as_markdown() == r"Hello, *World*\!" + + def test_replace(self): + node0 = Text("test0", param0="test1") + node1 = node0.replace("test1", "test2", param1="test1") + assert node0._body != node1._body + assert node0._params != node1._params + assert "param1" not in node0._params + assert "param1" in node1._params + + def test_add(self): + node0 = Text("Hello") + node1 = Bold("World") + + node2 = node0 + Text(", ") + node1 + "!" + assert node0 != node2 + assert node1 != node2 + assert len(node0._body) == 1 + assert len(node1._body) == 1 + assert len(node2._body) == 3 + + text, entities = node2.render() + assert text == "Hello, World!" + + def test_getitem_position(self): + node = Text("Hello, ", Bold("World"), "!") + with pytest.raises(TypeError): + node[2] + + def test_getitem_empty_slice(self): + node = Text("Hello, ", Bold("World"), "!") + new_node = node[:] + assert new_node is not node + assert isinstance(new_node, Text) + assert new_node._body == node._body + + def test_getitem_slice_zero(self): + node = Text("Hello, ", Bold("World"), "!") + new_node = node[2:2] + assert node is not new_node + assert isinstance(new_node, Text) + assert not new_node._body + + def test_getitem_slice_simple(self): + node = Text("Hello, ", Bold("World"), "!") + new_node = node[2:10] + assert isinstance(new_node, Text) + text, entities = new_node.render() + assert text == "llo, Wor" + assert len(entities) == 1 + assert entities[0].type == MessageEntityType.BOLD + + def test_getitem_slice_inside_child(self): + node = Text("Hello, ", Bold("World"), "!") + new_node = node[8:10] + assert isinstance(new_node, Text) + text, entities = new_node.render() + assert text == "or" + assert len(entities) == 1 + assert entities[0].type == MessageEntityType.BOLD + + def test_getitem_slice_tail(self): + node = Text("Hello, ", Bold("World"), "!") + new_node = node[12:13] + assert isinstance(new_node, Text) + text, entities = new_node.render() + assert text == "!" + assert not entities + + def test_from_entities(self): + # Most of the cases covered by text_decorations module + + node = Strikethrough.from_entities( + text="test1 test2 test3 test4 test5 test6 test7", + entities=[ + MessageEntity(type="bold", offset=6, length=29), + MessageEntity(type="underline", offset=12, length=5), + MessageEntity(type="italic", offset=24, length=5), + ], + ) + assert len(node._body) == 3 + assert isinstance(node, Strikethrough) + rendered = node.as_html() + assert rendered == "test1 test2 test3 test4 test5 test6 test7" + + def test_pretty_string(self): + node = Strikethrough.from_entities( + text="X", + entities=[ + MessageEntity( + type=MessageEntityType.CUSTOM_EMOJI, + offset=0, + length=1, + custom_emoji_id="42", + ), + ], + ) + assert ( + node.as_pretty_string(indent=True) + == """Strikethrough( + Text( + 'X', + custom_emoji_id='42' + ) +)""" + ) + + +class TestHashTag: + def test_only_one_element_in_body(self): + with pytest.raises(ValueError): + HashTag("test", "test") + + def test_body_is_not_str(self): + with pytest.raises(ValueError): + HashTag(Text("test")) + + def test_with_no_prefix(self): + node = HashTag("test") + assert node._body == ("#test",) + + def test_with_prefix(self): + node = HashTag("#test") + assert node._body == ("#test",) + + +class TestCashTag: + def test_only_one_element_in_body(self): + with pytest.raises(ValueError): + CashTag("test", "test") + + def test_body_is_not_str(self): + with pytest.raises(ValueError): + CashTag(Text("test")) + + def test_with_no_prefix(self): + node = CashTag("USD") + assert node._body == ("$USD",) + + def test_with_prefix(self): + node = CashTag("$USD") + assert node._body == ("$USD",) + + +class TestUtils: + def test_apply_entity(self): + node = _apply_entity( + MessageEntity(type=MessageEntityType.BOLD, offset=0, length=4), "test" + ) + assert isinstance(node, Bold) + assert node._body == ("test",) + + def test_as_line(self): + node = as_line("test", "test", "test") + assert isinstance(node, Text) + assert len(node._body) == 4 # 3 + '\n' + + def test_line_with_sep(self): + node = as_line("test", "test", "test", sep=" ") + assert isinstance(node, Text) + assert len(node._body) == 6 # 3 + 2 * ' ' + '\n' + + def test_as_line_single_element_with_sep(self): + node = as_line("test", sep=" ") + assert isinstance(node, Text) + assert len(node._body) == 2 # 1 + '\n' + + def test_as_list(self): + node = as_list("test", "test", "test") + assert isinstance(node, Text) + assert len(node._body) == 5 # 3 + 2 * '\n' between lines + + def test_as_marked_list(self): + node = as_marked_list("test 1", "test 2", "test 3") + assert node.as_html() == "- test 1\n- test 2\n- test 3" + + def test_as_numbered_list(self): + node = as_numbered_list("test 1", "test 2", "test 3", start=5) + assert node.as_html() == "5. test 1\n6. test 2\n7. test 3" + + def test_as_section(self): + node = as_section("title", "test 1", "test 2", "test 3") + assert node.as_html() == "title\ntest 1test 2test 3" + + def test_as_marked_section(self): + node = as_marked_section("Section", "test 1", "test 2", "test 3") + assert node.as_html() == "Section\n- test 1\n- test 2\n- test 3" + + def test_as_numbered_section(self): + node = as_numbered_section("Section", "test 1", "test 2", "test 3", start=5) + assert node.as_html() == "Section\n5. test 1\n6. test 2\n7. test 3" + + def test_as_key_value(self): + node = as_key_value("key", "test 1") + assert node.as_html() == "key: test 1" diff --git a/tests/test_utils/test_i18n.py b/tests/test_utils/test_i18n.py index 71fa2eb7..aaf58b9e 100644 --- a/tests/test_utils/test_i18n.py +++ b/tests/test_utils/test_i18n.py @@ -175,7 +175,7 @@ class TestConstI18nMiddleware: class TestFSMI18nMiddleware: - async def test_middleware(self, i18n: I18n, bot: MockedBot, extra): + async def test_middleware(self, i18n: I18n, bot: MockedBot): middleware = FSMI18nMiddleware(i18n=i18n) storage = MemoryStorage() state = FSMContext(storage=storage, key=StorageKey(user_id=42, chat_id=42, bot_id=bot.id)) @@ -185,12 +185,14 @@ class TestFSMI18nMiddleware: } result = await middleware(next_call, Update(update_id=42), data) assert result == "test" + await middleware.set_locale(state, "uk") assert i18n.current_locale == "uk" + result = await middleware(next_call, Update(update_id=42), data) assert result == "тест" - async def test_without_state(self, i18n: I18n, bot: MockedBot, extra): + async def test_without_state(self, i18n: I18n, bot: MockedBot): middleware = FSMI18nMiddleware(i18n=i18n) data = { "event_from_user": User(id=42, is_bot=False, language_code="it", first_name="Test"), @@ -198,7 +200,3 @@ class TestFSMI18nMiddleware: result = await middleware(next_call, Update(update_id=42), data) assert i18n.current_locale == "en" assert result == "test" - - assert i18n.current_locale == "en" - result = await middleware(next_call, Update(update_id=42), data) - assert i18n.current_locale == "en" diff --git a/tests/test_utils/test_keyboard.py b/tests/test_utils/test_keyboard.py index 65bb97e4..5beb6d58 100644 --- a/tests/test_utils/test_keyboard.py +++ b/tests/test_utils/test_keyboard.py @@ -228,3 +228,75 @@ class TestKeyboardBuilder: ) def test_as_markup(self, builder, expected): assert isinstance(builder.as_markup(), expected) + + @pytest.mark.parametrize( + "markup,builder_type", + [ + [ + ReplyKeyboardMarkup( + keyboard=[ + [KeyboardButton(text="test-1"), KeyboardButton(text="test-2")], + [KeyboardButton(text="test-3")], + ] + ), + ReplyKeyboardBuilder, + ], + [ + InlineKeyboardMarkup( + inline_keyboard=[ + [InlineKeyboardButton(text="test-1"), InlineKeyboardButton(text="test-2")], + [InlineKeyboardButton(text="test-3")], + ] + ), + InlineKeyboardBuilder, + ], + ], + ) + def test_from_markup(self, markup, builder_type): + builder = builder_type.from_markup(markup) + assert len(builder.export()) == 2 + assert len(list(builder.buttons)) == 3 + + def test_attach(self): + builder = ReplyKeyboardBuilder( + markup=[ + [ + KeyboardButton(text="test1"), + KeyboardButton(text="test2"), + KeyboardButton(text="test3"), + ] + ] + ) + builder.adjust(2) + builder.attach(ReplyKeyboardBuilder(markup=[[KeyboardButton(text="test2")]])) + markup = builder.export() + assert len(markup) == 3 + assert len(markup[0]) == 2 + assert len(markup[1]) == 1 + assert len(markup[2]) == 1 + + def test_attach_invalid_button_type(self): + builder = ReplyKeyboardBuilder( + markup=[ + [ + KeyboardButton(text="test1"), + KeyboardButton(text="test2"), + KeyboardButton(text="test3"), + ] + ] + ) + with pytest.raises(ValueError): + builder.attach(InlineKeyboardBuilder(markup=[[InlineKeyboardButton(text="test2")]])) + + def test_attach_not_builder(self): + builder = ReplyKeyboardBuilder( + markup=[ + [ + KeyboardButton(text="test1"), + KeyboardButton(text="test2"), + KeyboardButton(text="test3"), + ] + ] + ) + with pytest.raises(ValueError): + builder.attach(KeyboardButton(text="test2")) diff --git a/tests/test_utils/test_link.py b/tests/test_utils/test_link.py index 77419441..f0276703 100644 --- a/tests/test_utils/test_link.py +++ b/tests/test_utils/test_link.py @@ -6,10 +6,10 @@ import pytest from aiogram.utils.link import ( BRANCH, + create_channel_bot_link, create_telegram_link, create_tg_link, docs_url, - create_channel_bot_link, ) diff --git a/tests/test_utils/test_magic_filter.py b/tests/test_utils/test_magic_filter.py index 4a1d05f3..097c8365 100644 --- a/tests/test_utils/test_magic_filter.py +++ b/tests/test_utils/test_magic_filter.py @@ -19,3 +19,17 @@ class TestMagicFilter: result = magic.resolve(MyObject(text="123")) assert isinstance(result, dict) assert isinstance(result["match"], Match) + + def test_operation_as_not_none(self): + # Issue: https://github.com/aiogram/aiogram/issues/1281 + magic = F.cast(int).as_("value") + + result = magic.resolve("0") + assert result == {"value": 0} + + def test_operation_as_not_none_iterable(self): + # Issue: https://github.com/aiogram/aiogram/issues/1281 + magic = F.as_("value") + + result = magic.resolve([]) + assert result is None diff --git a/tests/test_utils/test_media_group.py b/tests/test_utils/test_media_group.py new file mode 100644 index 00000000..eae63a95 --- /dev/null +++ b/tests/test_utils/test_media_group.py @@ -0,0 +1,94 @@ +import pytest + +from aiogram.types import ( + InputMediaAudio, + InputMediaDocument, + InputMediaPhoto, + InputMediaVideo, + MessageEntity, +) +from aiogram.utils.media_group import MediaGroupBuilder + + +class TestMediaGroupBuilder: + def test_add_incorrect_media(self): + builder = MediaGroupBuilder() + with pytest.raises(ValueError): + builder._add("test") + + def test_add_more_than_10_media(self): + builder = MediaGroupBuilder() + for _ in range(10): + builder.add_photo("test") + with pytest.raises(ValueError): + builder.add_photo("test") + + def test_extend(self): + builder = MediaGroupBuilder() + media = InputMediaPhoto(media="test") + + builder._extend([media, media]) + assert len(builder._media) == 2 + + def test_add_audio(self): + builder = MediaGroupBuilder() + builder.add_audio("test") + assert isinstance(builder._media[0], InputMediaAudio) + + def test_add_photo(self): + builder = MediaGroupBuilder() + builder.add_photo("test") + assert isinstance(builder._media[0], InputMediaPhoto) + + def test_add_video(self): + builder = MediaGroupBuilder() + builder.add_video("test") + assert isinstance(builder._media[0], InputMediaVideo) + + def test_add_document(self): + builder = MediaGroupBuilder() + builder.add_document("test") + assert isinstance(builder._media[0], InputMediaDocument) + + @pytest.mark.parametrize( + "type,result_type", + [ + ("audio", InputMediaAudio), + ("photo", InputMediaPhoto), + ("video", InputMediaVideo), + ("document", InputMediaDocument), + ], + ) + def test_add(self, type, result_type): + builder = MediaGroupBuilder() + builder.add(type=type, media="test") + assert isinstance(builder._media[0], result_type) + + def test_add_unknown_type(self): + builder = MediaGroupBuilder() + with pytest.raises(ValueError): + builder.add(type="unknown", media="test") + + def test_build(self): + builder = MediaGroupBuilder() + builder.add_photo("test") + assert builder.build() == builder._media + + def test_build_empty(self): + builder = MediaGroupBuilder() + assert builder.build() == [] + + def test_build_with_caption(self): + builder = MediaGroupBuilder( + caption="override caption", + caption_entities=[MessageEntity(type="bold", offset=0, length=8)], + ) + builder.add_photo("test", caption="test") + builder.add_photo("test", caption="test") + builder.add_photo("test", caption="test") + + media = builder.build() + assert len(media) == 3 + assert media[0].caption == "override caption" + assert media[1].caption == "test" + assert media[2].caption == "test" diff --git a/tests/test_utils/test_text_decorations.py b/tests/test_utils/test_text_decorations.py index 056bd1cb..25f222f0 100644 --- a/tests/test_utils/test_text_decorations.py +++ b/tests/test_utils/test_text_decorations.py @@ -113,6 +113,14 @@ class TestTextDecoration: ): assert decorator.apply_entity(entity, "test") == result + def test_unknown_apply_entity(self): + assert ( + html_decoration.apply_entity( + MessageEntity(type="unknown", offset=0, length=5), "" + ) + == "<test>" + ) + @pytest.mark.parametrize( "decorator,before,after", [ @@ -243,6 +251,33 @@ class TestTextDecoration: [MessageEntity(type="bold", offset=0, length=8, url=None, user=None)], "👋🏾 Hi!", ], + [ + html_decoration, + "#test", + [ + MessageEntity(type="hashtag", offset=0, length=5), + MessageEntity(type="bold", offset=0, length=5), + ], + "#test", + ], + [ + html_decoration, + "$TEST", + [ + MessageEntity(type="cashtag", offset=0, length=5), + MessageEntity(type="bold", offset=0, length=5), + ], + "$TEST", + ], + [ + html_decoration, + "test@example.com", + [ + MessageEntity(type="email", offset=0, length=16), + MessageEntity(type="bold", offset=0, length=16), + ], + "test@example.com", + ], ], ) def test_unparse( diff --git a/tests/test_webhook/test_aiohtt_server.py b/tests/test_webhook/test_aiohtt_server.py index 5be8f43e..4e3f6658 100644 --- a/tests/test_webhook/test_aiohtt_server.py +++ b/tests/test_webhook/test_aiohtt_server.py @@ -189,8 +189,24 @@ class TestSimpleRequestHandler: result = await resp.json() assert not result + async def test_verify_secret(self, bot: MockedBot, aiohttp_client): + app = Application() + dp = Dispatcher() + handler = SimpleRequestHandler( + dispatcher=dp, bot=bot, handle_in_background=False, secret_token="vasya228" + ) + handler.register(app, path="/webhook") + client: TestClient = await aiohttp_client(app) + resp = await self.make_reqest(client=client) + assert resp.status == 401 + class TestTokenBasedRequestHandler: + async def test_verify_secret(self, bot: MockedBot): + dispatcher = Dispatcher() + handler = TokenBasedRequestHandler(dispatcher=dispatcher) + assert handler.verify_secret("petro328", bot) + async def test_register(self): dispatcher = Dispatcher() app = Application()