botapi-py 1.4.2__tar.gz → 1.4.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {botapi_py-1.4.2 → botapi_py-1.4.4}/PKG-INFO +1 -1
- {botapi_py-1.4.2 → botapi_py-1.4.4}/pyproject.toml +1 -1
- {botapi_py-1.4.2 → botapi_py-1.4.4}/src/botapi/core.py +7 -0
- {botapi_py-1.4.2 → botapi_py-1.4.4}/src/botapi/enums.py +17 -9
- {botapi_py-1.4.2 → botapi_py-1.4.4}/src/botapi/methods.py +17 -15
- {botapi_py-1.4.2 → botapi_py-1.4.4}/src/botapi/types.py +75 -66
- {botapi_py-1.4.2 → botapi_py-1.4.4}/src/botapi/__init__.py +0 -0
- {botapi_py-1.4.2 → botapi_py-1.4.4}/src/botapi/__init__.pyi +0 -0
- {botapi_py-1.4.2 → botapi_py-1.4.4}/src/botapi/dispatchers/__init__.py +0 -0
- {botapi_py-1.4.2 → botapi_py-1.4.4}/src/botapi/dispatchers/__init__.pyi +0 -0
- {botapi_py-1.4.2 → botapi_py-1.4.4}/src/botapi/dispatchers/common.py +0 -0
- {botapi_py-1.4.2 → botapi_py-1.4.4}/src/botapi/dispatchers/get_updates_handler.py +0 -0
- {botapi_py-1.4.2 → botapi_py-1.4.4}/src/botapi/dispatchers/redis_pubsub_handler.py +0 -0
- {botapi_py-1.4.2 → botapi_py-1.4.4}/src/botapi/errors.py +0 -0
- {botapi_py-1.4.2 → botapi_py-1.4.4}/src/botapi/utils.py +0 -0
|
@@ -36,6 +36,13 @@ class BaseBot:
|
|
|
36
36
|
if not session:
|
|
37
37
|
log.warning('No HTTP session provided, creating a new one.')
|
|
38
38
|
|
|
39
|
+
@property
|
|
40
|
+
def bot_id(self) -> int:
|
|
41
|
+
'''
|
|
42
|
+
Returns the bot's user ID by extracting it from the token.
|
|
43
|
+
'''
|
|
44
|
+
return int(self.token.split(':')[0])
|
|
45
|
+
|
|
39
46
|
def _compose_api_url(self, method: str) -> str:
|
|
40
47
|
url = f'{self.api_url}/bot{self.token}/'
|
|
41
48
|
if self.test_server:
|
|
@@ -45,8 +45,9 @@ class UpdateType(enum.StrEnum):
|
|
|
45
45
|
|
|
46
46
|
class MediaType(enum.StrEnum):
|
|
47
47
|
'''
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
Subset of `MessageType`.
|
|
49
|
+
|
|
50
|
+
This represents **messages** containing some kind of **multimedia/visual content**.
|
|
50
51
|
'''
|
|
51
52
|
ANIMATION = 'animation'
|
|
52
53
|
AUDIO = 'audio'
|
|
@@ -61,10 +62,12 @@ class MediaType(enum.StrEnum):
|
|
|
61
62
|
|
|
62
63
|
class ServiceMessage(enum.StrEnum):
|
|
63
64
|
'''
|
|
64
|
-
|
|
65
|
+
Subset of `MessageType`.
|
|
66
|
+
|
|
67
|
+
This represents special types of **service messages**.
|
|
65
68
|
|
|
66
|
-
|
|
67
|
-
containing text and/or graphical elements (e.g. gifts, giveaways).
|
|
69
|
+
These messages are ALL represented as semi-transparent bubbles in Telegram apps UI,
|
|
70
|
+
containing text (e.g. "user joined the group") and/or graphical elements (e.g. gifts, giveaways).
|
|
68
71
|
'''
|
|
69
72
|
NEW_CHAT_MEMBERS = 'new_chat_members'
|
|
70
73
|
LEFT_CHAT_MEMBER = 'left_chat_member'
|
|
@@ -118,7 +121,10 @@ class ServiceMessage(enum.StrEnum):
|
|
|
118
121
|
|
|
119
122
|
class OtherMessageType(enum.StrEnum):
|
|
120
123
|
'''
|
|
121
|
-
|
|
124
|
+
Subset of `MessageType`.
|
|
125
|
+
|
|
126
|
+
This represents other possible types of messages, that do NOT contain
|
|
127
|
+
multimedia nor service content.
|
|
122
128
|
'''
|
|
123
129
|
TEXT = 'text'
|
|
124
130
|
CHECKLIST = 'checklist'
|
|
@@ -136,17 +142,19 @@ MessageType = Union[
|
|
|
136
142
|
OtherMessageType
|
|
137
143
|
]
|
|
138
144
|
'''
|
|
145
|
+
Possible types of a `UpdateType.Message` update.
|
|
146
|
+
|
|
139
147
|
The type of the **actual** message content.
|
|
140
148
|
|
|
141
149
|
All of the fields are mutually exclusive, since a message
|
|
142
150
|
can only be of one 'type' at a time.
|
|
143
151
|
'''
|
|
144
|
-
|
|
152
|
+
|
|
145
153
|
class ChatMemberStatus(enum.StrEnum):
|
|
146
154
|
'''
|
|
147
|
-
|
|
155
|
+
Possible statuses of a `ChatMember`.
|
|
148
156
|
|
|
149
|
-
|
|
157
|
+
Remember that left members that are also restricted (muted), are represented as
|
|
150
158
|
`RESTRICTED` with the `is_member` flag set to `False`.
|
|
151
159
|
|
|
152
160
|
See: https://core.telegram.org/bots/api#chatmember
|
|
@@ -8,6 +8,8 @@ from typing import Union, Optional, List
|
|
|
8
8
|
|
|
9
9
|
from . import core
|
|
10
10
|
|
|
11
|
+
from . import enums
|
|
12
|
+
|
|
11
13
|
from .types import (
|
|
12
14
|
Update,
|
|
13
15
|
WebhookInfo,
|
|
@@ -327,7 +329,7 @@ class Bot(core.BaseBot):
|
|
|
327
329
|
offset: Optional[int] = None,
|
|
328
330
|
limit: Optional[int] = None,
|
|
329
331
|
timeout: Optional[int] = None,
|
|
330
|
-
allowed_updates: Optional[List[
|
|
332
|
+
allowed_updates: Optional[List[enums.UpdateType]] = None,
|
|
331
333
|
) -> List[Update]:
|
|
332
334
|
'''
|
|
333
335
|
Use this method to receive incoming updates using
|
|
@@ -351,7 +353,7 @@ class Bot(core.BaseBot):
|
|
|
351
353
|
certificate: Optional[InputFile] = None,
|
|
352
354
|
ip_address: Optional[str] = None,
|
|
353
355
|
max_connections: Optional[int] = None,
|
|
354
|
-
allowed_updates: Optional[List[
|
|
356
|
+
allowed_updates: Optional[List[enums.UpdateType]] = None,
|
|
355
357
|
drop_pending_updates: Optional[bool] = None,
|
|
356
358
|
secret_token: Optional[str] = None,
|
|
357
359
|
) -> bool:
|
|
@@ -473,7 +475,7 @@ class Bot(core.BaseBot):
|
|
|
473
475
|
business_connection_id: Optional[str] = None,
|
|
474
476
|
message_thread_id: Optional[int] = None,
|
|
475
477
|
direct_messages_topic_id: Optional[int] = None,
|
|
476
|
-
parse_mode: Optional[
|
|
478
|
+
parse_mode: Optional[enums.ParseMode] = enums.ParseMode.HTML,
|
|
477
479
|
entities: Optional[List[MessageEntity]] = None,
|
|
478
480
|
link_preview_options: Optional[LinkPreviewOptions] = None,
|
|
479
481
|
disable_notification: Optional[bool] = None,
|
|
@@ -586,7 +588,7 @@ class Bot(core.BaseBot):
|
|
|
586
588
|
direct_messages_topic_id: Optional[int] = None,
|
|
587
589
|
video_start_timestamp: Optional[int] = None,
|
|
588
590
|
caption: Optional[str] = None,
|
|
589
|
-
parse_mode: Optional[
|
|
591
|
+
parse_mode: Optional[enums.ParseMode] = enums.ParseMode.HTML,
|
|
590
592
|
caption_entities: Optional[List[MessageEntity]] = None,
|
|
591
593
|
show_caption_above_media: Optional[bool] = None,
|
|
592
594
|
disable_notification: Optional[bool] = None,
|
|
@@ -680,7 +682,7 @@ class Bot(core.BaseBot):
|
|
|
680
682
|
message_thread_id: Optional[int] = None,
|
|
681
683
|
direct_messages_topic_id: Optional[int] = None,
|
|
682
684
|
caption: Optional[str] = None,
|
|
683
|
-
parse_mode: Optional[
|
|
685
|
+
parse_mode: Optional[enums.ParseMode] = enums.ParseMode.HTML,
|
|
684
686
|
caption_entities: Optional[List[MessageEntity]] = None,
|
|
685
687
|
show_caption_above_media: Optional[bool] = None,
|
|
686
688
|
has_spoiler: Optional[bool] = None,
|
|
@@ -728,7 +730,7 @@ class Bot(core.BaseBot):
|
|
|
728
730
|
message_thread_id: Optional[int] = None,
|
|
729
731
|
direct_messages_topic_id: Optional[int] = None,
|
|
730
732
|
caption: Optional[str] = None,
|
|
731
|
-
parse_mode: Optional[
|
|
733
|
+
parse_mode: Optional[enums.ParseMode] = enums.ParseMode.HTML,
|
|
732
734
|
caption_entities: Optional[List[MessageEntity]] = None,
|
|
733
735
|
duration: Optional[int] = None,
|
|
734
736
|
performer: Optional[str] = None,
|
|
@@ -787,7 +789,7 @@ class Bot(core.BaseBot):
|
|
|
787
789
|
direct_messages_topic_id: Optional[int] = None,
|
|
788
790
|
thumbnail: Optional[Union[InputFile, str]] = None,
|
|
789
791
|
caption: Optional[str] = None,
|
|
790
|
-
parse_mode: Optional[
|
|
792
|
+
parse_mode: Optional[enums.ParseMode] = enums.ParseMode.HTML,
|
|
791
793
|
caption_entities: Optional[List[MessageEntity]] = None,
|
|
792
794
|
disable_content_type_detection: Optional[bool] = None,
|
|
793
795
|
disable_notification: Optional[bool] = None,
|
|
@@ -843,7 +845,7 @@ class Bot(core.BaseBot):
|
|
|
843
845
|
cover: Optional[Union[InputFile, str]] = None,
|
|
844
846
|
start_timestamp: Optional[int] = None,
|
|
845
847
|
caption: Optional[str] = None,
|
|
846
|
-
parse_mode: Optional[
|
|
848
|
+
parse_mode: Optional[enums.ParseMode] = enums.ParseMode.HTML,
|
|
847
849
|
caption_entities: Optional[List[MessageEntity]] = None,
|
|
848
850
|
show_caption_above_media: Optional[bool] = None,
|
|
849
851
|
has_spoiler: Optional[bool] = None,
|
|
@@ -907,7 +909,7 @@ class Bot(core.BaseBot):
|
|
|
907
909
|
height: Optional[int] = None,
|
|
908
910
|
thumbnail: Optional[Union[InputFile, str]] = None,
|
|
909
911
|
caption: Optional[str] = None,
|
|
910
|
-
parse_mode: Optional[
|
|
912
|
+
parse_mode: Optional[enums.ParseMode] = enums.ParseMode.HTML,
|
|
911
913
|
caption_entities: Optional[List[MessageEntity]] = None,
|
|
912
914
|
show_caption_above_media: Optional[bool] = None,
|
|
913
915
|
has_spoiler: Optional[bool] = None,
|
|
@@ -963,7 +965,7 @@ class Bot(core.BaseBot):
|
|
|
963
965
|
message_thread_id: Optional[int] = None,
|
|
964
966
|
direct_messages_topic_id: Optional[int] = None,
|
|
965
967
|
caption: Optional[str] = None,
|
|
966
|
-
parse_mode: Optional[
|
|
968
|
+
parse_mode: Optional[enums.ParseMode] = enums.ParseMode.HTML,
|
|
967
969
|
caption_entities: Optional[List[MessageEntity]] = None,
|
|
968
970
|
duration: Optional[int] = None,
|
|
969
971
|
disable_notification: Optional[bool] = None,
|
|
@@ -1066,7 +1068,7 @@ class Bot(core.BaseBot):
|
|
|
1066
1068
|
direct_messages_topic_id: Optional[int] = None,
|
|
1067
1069
|
payload: Optional[str] = None,
|
|
1068
1070
|
caption: Optional[str] = None,
|
|
1069
|
-
parse_mode: Optional[
|
|
1071
|
+
parse_mode: Optional[enums.ParseMode] = enums.ParseMode.HTML,
|
|
1070
1072
|
caption_entities: Optional[List[MessageEntity]] = None,
|
|
1071
1073
|
show_caption_above_media: Optional[bool] = None,
|
|
1072
1074
|
disable_notification: Optional[bool] = None,
|
|
@@ -3284,7 +3286,7 @@ class Bot(core.BaseBot):
|
|
|
3284
3286
|
content: InputStoryContent,
|
|
3285
3287
|
active_period: int,
|
|
3286
3288
|
caption: Optional[str] = None,
|
|
3287
|
-
parse_mode: Optional[
|
|
3289
|
+
parse_mode: Optional[enums.ParseMode] = enums.ParseMode.HTML,
|
|
3288
3290
|
caption_entities: Optional[List[MessageEntity]] = None,
|
|
3289
3291
|
areas: Optional[List[StoryArea]] = None,
|
|
3290
3292
|
post_to_chat_page: Optional[bool] = None,
|
|
@@ -3317,7 +3319,7 @@ class Bot(core.BaseBot):
|
|
|
3317
3319
|
story_id: int,
|
|
3318
3320
|
content: InputStoryContent,
|
|
3319
3321
|
caption: Optional[str] = None,
|
|
3320
|
-
parse_mode: Optional[
|
|
3322
|
+
parse_mode: Optional[enums.ParseMode] = enums.ParseMode.HTML,
|
|
3321
3323
|
caption_entities: Optional[List[MessageEntity]] = None,
|
|
3322
3324
|
areas: Optional[List[StoryArea]] = None,
|
|
3323
3325
|
) -> Story:
|
|
@@ -3368,7 +3370,7 @@ class Bot(core.BaseBot):
|
|
|
3368
3370
|
chat_id: Optional[Union[int, str]] = None,
|
|
3369
3371
|
message_id: Optional[int] = None,
|
|
3370
3372
|
inline_message_id: Optional[str] = None,
|
|
3371
|
-
parse_mode: Optional[
|
|
3373
|
+
parse_mode: Optional[enums.ParseMode] = enums.ParseMode.HTML,
|
|
3372
3374
|
entities: Optional[List[MessageEntity]] = None,
|
|
3373
3375
|
link_preview_options: Optional[LinkPreviewOptions] = None,
|
|
3374
3376
|
reply_markup: Optional[InlineKeyboardMarkup] = None,
|
|
@@ -3409,7 +3411,7 @@ class Bot(core.BaseBot):
|
|
|
3409
3411
|
message_id: Optional[int] = None,
|
|
3410
3412
|
inline_message_id: Optional[str] = None,
|
|
3411
3413
|
caption: Optional[str] = None,
|
|
3412
|
-
parse_mode: Optional[
|
|
3414
|
+
parse_mode: Optional[enums.ParseMode] = enums.ParseMode.HTML,
|
|
3413
3415
|
caption_entities: Optional[List[MessageEntity]] = None,
|
|
3414
3416
|
show_caption_above_media: Optional[bool] = None,
|
|
3415
3417
|
reply_markup: Optional[InlineKeyboardMarkup] = None,
|
|
@@ -143,7 +143,7 @@ class Message(MaybeInaccessibleMessage, frozen=True):
|
|
|
143
143
|
async def pin(
|
|
144
144
|
self,
|
|
145
145
|
bot: methods.Bot,
|
|
146
|
-
disable_notification: bool
|
|
146
|
+
disable_notification: Union[bool, None] = None,
|
|
147
147
|
) -> bool:
|
|
148
148
|
'''
|
|
149
149
|
Pins this message in the chat.
|
|
@@ -171,13 +171,13 @@ class Message(MaybeInaccessibleMessage, frozen=True):
|
|
|
171
171
|
async def forward(
|
|
172
172
|
self,
|
|
173
173
|
bot: methods.Bot,
|
|
174
|
-
chat_id: int
|
|
175
|
-
disable_notification: bool
|
|
176
|
-
protect_content: bool
|
|
177
|
-
message_thread_id: int
|
|
178
|
-
direct_messages_topic_id: int
|
|
179
|
-
video_start_timestamp: int
|
|
180
|
-
# suggested_post_parameters: SuggestedPostParameters
|
|
174
|
+
chat_id: Union[int, str],
|
|
175
|
+
disable_notification: Optional[bool] = None,
|
|
176
|
+
protect_content: Optional[bool] = None,
|
|
177
|
+
message_thread_id: Optional[int] = None,
|
|
178
|
+
direct_messages_topic_id: Optional[int] = None,
|
|
179
|
+
video_start_timestamp: Optional[int] = None,
|
|
180
|
+
# suggested_post_parameters: Optional[SuggestedPostParameters] = None,
|
|
181
181
|
) -> Message:
|
|
182
182
|
'''
|
|
183
183
|
Forwards this message to another chat.
|
|
@@ -198,20 +198,20 @@ class Message(MaybeInaccessibleMessage, frozen=True):
|
|
|
198
198
|
async def copy_to(
|
|
199
199
|
self,
|
|
200
200
|
bot: methods.Bot,
|
|
201
|
-
chat_id: int
|
|
202
|
-
message_thread_id: int
|
|
203
|
-
direct_messages_topic_id: int
|
|
204
|
-
video_start_timestamp: int
|
|
205
|
-
# caption: str
|
|
206
|
-
# parse_mode:
|
|
207
|
-
# caption_entities: List[MessageEntity]
|
|
208
|
-
# show_caption_above_media: bool
|
|
209
|
-
disable_notification: bool
|
|
210
|
-
protect_content: bool
|
|
211
|
-
# allow_paid_broadcast: bool
|
|
212
|
-
# suggested_post_parameters: SuggestedPostParameters
|
|
213
|
-
# reply_parameters: ReplyParameters
|
|
214
|
-
# reply_markup: InlineKeyboardMarkup
|
|
201
|
+
chat_id: Union[int, str],
|
|
202
|
+
message_thread_id: Optional[int] = None,
|
|
203
|
+
direct_messages_topic_id: Optional[int] = None,
|
|
204
|
+
video_start_timestamp: Optional[int] = None,
|
|
205
|
+
# caption: Optional[str] = None,
|
|
206
|
+
# parse_mode: Optional[enums.ParseMode] = enums.ParseMode.HTML,
|
|
207
|
+
# caption_entities: Optional[List[MessageEntity]] = None,
|
|
208
|
+
# show_caption_above_media: Optional[bool] = None,
|
|
209
|
+
disable_notification: Optional[bool] = None,
|
|
210
|
+
protect_content: Optional[bool] = None,
|
|
211
|
+
# allow_paid_broadcast: Optional[bool] = None,
|
|
212
|
+
# suggested_post_parameters: Optional[SuggestedPostParameters] = None,
|
|
213
|
+
# reply_parameters: Optional[ReplyParameters] = None,
|
|
214
|
+
# reply_markup: Optional[Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply]] = None
|
|
215
215
|
) -> MessageId:
|
|
216
216
|
'''
|
|
217
217
|
Copies this message to another chat.
|
|
@@ -241,11 +241,11 @@ class Message(MaybeInaccessibleMessage, frozen=True):
|
|
|
241
241
|
bot: methods.Bot,
|
|
242
242
|
text: str,
|
|
243
243
|
# inline_message_id: Optional[str] = None,
|
|
244
|
-
parse_mode:
|
|
245
|
-
entities: list[MessageEntity]
|
|
246
|
-
link_preview_options: LinkPreviewOptions
|
|
247
|
-
reply_markup: InlineKeyboardMarkup
|
|
248
|
-
) -> Message
|
|
244
|
+
parse_mode: Optional[enums.ParseMode] = enums.ParseMode.HTML,
|
|
245
|
+
entities: Optional[list[MessageEntity]] = None,
|
|
246
|
+
link_preview_options: Optional[LinkPreviewOptions] = None,
|
|
247
|
+
reply_markup: Optional[InlineKeyboardMarkup] = None,
|
|
248
|
+
) -> Union[Message, bool]:
|
|
249
249
|
'''
|
|
250
250
|
Edits the text of this message.
|
|
251
251
|
Shortcut for `bot.edit_message_text`.
|
|
@@ -267,8 +267,8 @@ class Message(MaybeInaccessibleMessage, frozen=True):
|
|
|
267
267
|
self,
|
|
268
268
|
bot: methods.Bot,
|
|
269
269
|
# inline_message_id: Optional[str] = None,
|
|
270
|
-
reply_markup: InlineKeyboardMarkup
|
|
271
|
-
) -> Message
|
|
270
|
+
reply_markup: Optional[InlineKeyboardMarkup] = None,
|
|
271
|
+
) -> Union[Message, bool]:
|
|
272
272
|
'''
|
|
273
273
|
Edits the reply markup (inline keyboard) of this message.
|
|
274
274
|
Shortcut for `bot.edit_message_reply_markup`.
|
|
@@ -285,18 +285,18 @@ class Message(MaybeInaccessibleMessage, frozen=True):
|
|
|
285
285
|
self,
|
|
286
286
|
bot: methods.Bot,
|
|
287
287
|
text: str,
|
|
288
|
-
parse_mode:
|
|
289
|
-
entities: list[MessageEntity]
|
|
288
|
+
parse_mode: Optional[enums.ParseMode] = enums.ParseMode.HTML,
|
|
289
|
+
entities: Optional[list[MessageEntity]] = None,
|
|
290
290
|
reply_to_original_message: bool = True, # CUSTOM
|
|
291
291
|
allow_sending_without_reply: bool = True, # CUSTOM
|
|
292
|
-
link_preview_options: LinkPreviewOptions
|
|
293
|
-
disable_notification: bool
|
|
294
|
-
protect_content: bool
|
|
295
|
-
allow_paid_broadcast: bool
|
|
296
|
-
message_effect_id: str
|
|
297
|
-
reply_parameters: ReplyParameters
|
|
298
|
-
# suggested_post_parameters: SuggestedPostParameters
|
|
299
|
-
reply_markup: InlineKeyboardMarkup
|
|
292
|
+
link_preview_options: Optional[LinkPreviewOptions] = None,
|
|
293
|
+
disable_notification: Optional[bool] = None,
|
|
294
|
+
protect_content: Optional[bool] = None,
|
|
295
|
+
allow_paid_broadcast: Optional[bool] = None,
|
|
296
|
+
message_effect_id: Optional[str] = None,
|
|
297
|
+
reply_parameters: Optional[ReplyParameters] = None,
|
|
298
|
+
# suggested_post_parameters: Optional[SuggestedPostParameters] = None,
|
|
299
|
+
reply_markup: Optional[Union[InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardRemove, ForceReply]] = None,
|
|
300
300
|
) -> Message:
|
|
301
301
|
'''
|
|
302
302
|
Replies to this message with a text message.
|
|
@@ -363,7 +363,7 @@ class Message(MaybeInaccessibleMessage, frozen=True):
|
|
|
363
363
|
return None
|
|
364
364
|
|
|
365
365
|
@property
|
|
366
|
-
def message_type(self) -> enums.MessageType
|
|
366
|
+
def message_type(self) -> Optional[enums.MessageType]:
|
|
367
367
|
'''
|
|
368
368
|
Type of the actual message content (e.g., `text`, `photo`, `sticker`, `poll`, `new_chat_title`, etc.).
|
|
369
369
|
|
|
@@ -1101,7 +1101,7 @@ class InputMediaAnimation(InputMedia, frozen=True):
|
|
|
1101
1101
|
media: str
|
|
1102
1102
|
thumbnail: Optional[str] = Field(default=None)
|
|
1103
1103
|
caption: Optional[str] = Field(default=None)
|
|
1104
|
-
parse_mode: Optional[str] = Field(default=
|
|
1104
|
+
parse_mode: Optional[str] = Field(default=enums.ParseMode.HTML.value)
|
|
1105
1105
|
caption_entities: Optional[List[MessageEntity]] = Field(default=None)
|
|
1106
1106
|
show_caption_above_media: Optional[bool] = Field(default=None)
|
|
1107
1107
|
width: Optional[int] = Field(default=None)
|
|
@@ -1120,7 +1120,7 @@ class InputMediaDocument(InputMedia, frozen=True):
|
|
|
1120
1120
|
media: str
|
|
1121
1121
|
thumbnail: Optional[str] = Field(default=None)
|
|
1122
1122
|
caption: Optional[str] = Field(default=None)
|
|
1123
|
-
parse_mode: Optional[str] = Field(default=
|
|
1123
|
+
parse_mode: Optional[str] = Field(default=enums.ParseMode.HTML.value)
|
|
1124
1124
|
caption_entities: Optional[List[MessageEntity]] = Field(default=None)
|
|
1125
1125
|
disable_content_type_detection: Optional[bool] = Field(default=None)
|
|
1126
1126
|
|
|
@@ -1136,7 +1136,7 @@ class InputMediaAudio(InputMedia, frozen=True):
|
|
|
1136
1136
|
media: str
|
|
1137
1137
|
thumbnail: Optional[str] = Field(default=None)
|
|
1138
1138
|
caption: Optional[str] = Field(default=None)
|
|
1139
|
-
parse_mode: Optional[str] = Field(default=
|
|
1139
|
+
parse_mode: Optional[str] = Field(default=enums.ParseMode.HTML.value)
|
|
1140
1140
|
caption_entities: Optional[List[MessageEntity]] = Field(default=None)
|
|
1141
1141
|
duration: Optional[int] = Field(default=None)
|
|
1142
1142
|
performer: Optional[str] = Field(default=None)
|
|
@@ -1152,7 +1152,7 @@ class InputMediaPhoto(InputMedia, frozen=True):
|
|
|
1152
1152
|
type: Literal['photo'] = 'photo'
|
|
1153
1153
|
media: str
|
|
1154
1154
|
caption: Optional[str] = Field(default=None)
|
|
1155
|
-
parse_mode: Optional[str] = Field(default=
|
|
1155
|
+
parse_mode: Optional[str] = Field(default=enums.ParseMode.HTML.value)
|
|
1156
1156
|
caption_entities: Optional[List[MessageEntity]] = Field(default=None)
|
|
1157
1157
|
show_caption_above_media: Optional[bool] = Field(default=None)
|
|
1158
1158
|
has_spoiler: Optional[bool] = Field(default=None)
|
|
@@ -1170,7 +1170,7 @@ class InputMediaVideo(InputMedia, frozen=True):
|
|
|
1170
1170
|
cover: Optional[str] = Field(default=None)
|
|
1171
1171
|
start_timestamp: Optional[int] = Field(default=None)
|
|
1172
1172
|
caption: Optional[str] = Field(default=None)
|
|
1173
|
-
parse_mode: Optional[str] = Field(default=
|
|
1173
|
+
parse_mode: Optional[str] = Field(default=enums.ParseMode.HTML.value)
|
|
1174
1174
|
caption_entities: Optional[List[MessageEntity]] = Field(default=None)
|
|
1175
1175
|
show_caption_above_media: Optional[bool] = Field(default=None)
|
|
1176
1176
|
width: Optional[int] = Field(default=None)
|
|
@@ -1308,7 +1308,7 @@ class InlineQueryResultCachedAudio(InlineQueryResult, frozen=True):
|
|
|
1308
1308
|
id: str
|
|
1309
1309
|
audio_file_id: str
|
|
1310
1310
|
caption: Optional[str] = Field(default=None)
|
|
1311
|
-
parse_mode: Optional[str] = Field(default=
|
|
1311
|
+
parse_mode: Optional[str] = Field(default=enums.ParseMode.HTML.value)
|
|
1312
1312
|
caption_entities: Optional[List[MessageEntity]] = Field(default=None)
|
|
1313
1313
|
reply_markup: Optional[InlineKeyboardMarkup] = Field(default=None)
|
|
1314
1314
|
input_message_content: Optional[InputMessageContent] = Field(default=None)
|
|
@@ -1331,7 +1331,7 @@ class InlineQueryResultCachedDocument(InlineQueryResult, frozen=True):
|
|
|
1331
1331
|
document_file_id: str
|
|
1332
1332
|
description: Optional[str] = Field(default=None)
|
|
1333
1333
|
caption: Optional[str] = Field(default=None)
|
|
1334
|
-
parse_mode: Optional[str] = Field(default=
|
|
1334
|
+
parse_mode: Optional[str] = Field(default=enums.ParseMode.HTML.value)
|
|
1335
1335
|
caption_entities: Optional[List[MessageEntity]] = Field(default=None)
|
|
1336
1336
|
reply_markup: Optional[InlineKeyboardMarkup] = Field(default=None)
|
|
1337
1337
|
input_message_content: Optional[InputMessageContent] = Field(default=None)
|
|
@@ -1353,7 +1353,7 @@ class InlineQueryResultCachedGif(InlineQueryResult, frozen=True):
|
|
|
1353
1353
|
gif_file_id: str
|
|
1354
1354
|
title: Optional[str] = Field(default=None)
|
|
1355
1355
|
caption: Optional[str] = Field(default=None)
|
|
1356
|
-
parse_mode: Optional[str] = Field(default=
|
|
1356
|
+
parse_mode: Optional[str] = Field(default=enums.ParseMode.HTML.value)
|
|
1357
1357
|
caption_entities: Optional[List[MessageEntity]] = Field(default=None)
|
|
1358
1358
|
show_caption_above_media: Optional[bool] = Field(default=None)
|
|
1359
1359
|
reply_markup: Optional[InlineKeyboardMarkup] = Field(default=None)
|
|
@@ -1377,7 +1377,7 @@ class InlineQueryResultCachedMpeg4Gif(InlineQueryResult, frozen=True):
|
|
|
1377
1377
|
mpeg4_file_id: str
|
|
1378
1378
|
title: Optional[str] = Field(default=None)
|
|
1379
1379
|
caption: Optional[str] = Field(default=None)
|
|
1380
|
-
parse_mode: Optional[str] = Field(default=
|
|
1380
|
+
parse_mode: Optional[str] = Field(default=enums.ParseMode.HTML.value)
|
|
1381
1381
|
caption_entities: Optional[List[MessageEntity]] = Field(default=None)
|
|
1382
1382
|
show_caption_above_media: Optional[bool] = Field(default=None)
|
|
1383
1383
|
reply_markup: Optional[InlineKeyboardMarkup] = Field(default=None)
|
|
@@ -1401,7 +1401,7 @@ class InlineQueryResultCachedPhoto(InlineQueryResult, frozen=True):
|
|
|
1401
1401
|
title: Optional[str] = Field(default=None)
|
|
1402
1402
|
description: Optional[str] = Field(default=None)
|
|
1403
1403
|
caption: Optional[str] = Field(default=None)
|
|
1404
|
-
parse_mode: Optional[str] = Field(default=
|
|
1404
|
+
parse_mode: Optional[str] = Field(default=enums.ParseMode.HTML.value)
|
|
1405
1405
|
caption_entities: Optional[List[MessageEntity]] = Field(default=None)
|
|
1406
1406
|
show_caption_above_media: Optional[bool] = Field(default=None)
|
|
1407
1407
|
reply_markup: Optional[InlineKeyboardMarkup] = Field(default=None)
|
|
@@ -1442,7 +1442,7 @@ class InlineQueryResultCachedVideo(InlineQueryResult, frozen=True):
|
|
|
1442
1442
|
title: str
|
|
1443
1443
|
description: Optional[str] = Field(default=None)
|
|
1444
1444
|
caption: Optional[str] = Field(default=None)
|
|
1445
|
-
parse_mode: Optional[str] = Field(default=
|
|
1445
|
+
parse_mode: Optional[str] = Field(default=enums.ParseMode.HTML.value)
|
|
1446
1446
|
caption_entities: Optional[List[MessageEntity]] = Field(default=None)
|
|
1447
1447
|
show_caption_above_media: Optional[bool] = Field(default=None)
|
|
1448
1448
|
reply_markup: Optional[InlineKeyboardMarkup] = Field(default=None)
|
|
@@ -1465,7 +1465,7 @@ class InlineQueryResultCachedVoice(InlineQueryResult, frozen=True):
|
|
|
1465
1465
|
voice_file_id: str
|
|
1466
1466
|
title: str
|
|
1467
1467
|
caption: Optional[str] = Field(default=None)
|
|
1468
|
-
parse_mode: Optional[str] = Field(default=
|
|
1468
|
+
parse_mode: Optional[str] = Field(default=enums.ParseMode.HTML.value)
|
|
1469
1469
|
caption_entities: Optional[List[MessageEntity]] = Field(default=None)
|
|
1470
1470
|
reply_markup: Optional[InlineKeyboardMarkup] = Field(default=None)
|
|
1471
1471
|
input_message_content: Optional[InputMessageContent] = Field(default=None)
|
|
@@ -1505,7 +1505,7 @@ class InlineQueryResultAudio(InlineQueryResult, frozen=True):
|
|
|
1505
1505
|
audio_url: str
|
|
1506
1506
|
title: str
|
|
1507
1507
|
caption: Optional[str] = Field(default=None)
|
|
1508
|
-
parse_mode: Optional[str] = Field(default=
|
|
1508
|
+
parse_mode: Optional[str] = Field(default=enums.ParseMode.HTML.value)
|
|
1509
1509
|
caption_entities: Optional[List[MessageEntity]] = Field(default=None)
|
|
1510
1510
|
performer: Optional[str] = Field(default=None)
|
|
1511
1511
|
audio_duration: Optional[int] = Field(default=None)
|
|
@@ -1566,7 +1566,7 @@ class InlineQueryResultDocument(InlineQueryResult, frozen=True):
|
|
|
1566
1566
|
document_url: str
|
|
1567
1567
|
mime_type: str
|
|
1568
1568
|
caption: Optional[str] = Field(default=None)
|
|
1569
|
-
parse_mode: Optional[str] = Field(default=
|
|
1569
|
+
parse_mode: Optional[str] = Field(default=enums.ParseMode.HTML.value)
|
|
1570
1570
|
caption_entities: Optional[List[MessageEntity]] = Field(default=None)
|
|
1571
1571
|
description: Optional[str] = Field(default=None)
|
|
1572
1572
|
reply_markup: Optional[InlineKeyboardMarkup] = Field(default=None)
|
|
@@ -1596,7 +1596,7 @@ class InlineQueryResultGif(InlineQueryResult, frozen=True):
|
|
|
1596
1596
|
thumbnail_mime_type: Optional[str] = Field(default=None)
|
|
1597
1597
|
title: Optional[str] = Field(default=None)
|
|
1598
1598
|
caption: Optional[str] = Field(default=None)
|
|
1599
|
-
parse_mode: Optional[str] = Field(default=
|
|
1599
|
+
parse_mode: Optional[str] = Field(default=enums.ParseMode.HTML.value)
|
|
1600
1600
|
caption_entities: Optional[List[MessageEntity]] = Field(default=None)
|
|
1601
1601
|
show_caption_above_media: Optional[bool] = Field(default=None)
|
|
1602
1602
|
reply_markup: Optional[InlineKeyboardMarkup] = Field(default=None)
|
|
@@ -1650,7 +1650,7 @@ class InlineQueryResultMpeg4Gif(InlineQueryResult, frozen=True):
|
|
|
1650
1650
|
thumbnail_mime_type: Optional[str] = Field(default=None)
|
|
1651
1651
|
title: Optional[str] = Field(default=None)
|
|
1652
1652
|
caption: Optional[str] = Field(default=None)
|
|
1653
|
-
parse_mode: Optional[str] = Field(default=
|
|
1653
|
+
parse_mode: Optional[str] = Field(default=enums.ParseMode.HTML.value)
|
|
1654
1654
|
caption_entities: Optional[List[MessageEntity]] = Field(default=None)
|
|
1655
1655
|
show_caption_above_media: Optional[bool] = Field(default=None)
|
|
1656
1656
|
reply_markup: Optional[InlineKeyboardMarkup] = Field(default=None)
|
|
@@ -1676,7 +1676,7 @@ class InlineQueryResultPhoto(InlineQueryResult, frozen=True):
|
|
|
1676
1676
|
title: Optional[str] = Field(default=None)
|
|
1677
1677
|
description: Optional[str] = Field(default=None)
|
|
1678
1678
|
caption: Optional[str] = Field(default=None)
|
|
1679
|
-
parse_mode: Optional[str] = Field(default=
|
|
1679
|
+
parse_mode: Optional[str] = Field(default=enums.ParseMode.HTML.value)
|
|
1680
1680
|
caption_entities: Optional[List[MessageEntity]] = Field(default=None)
|
|
1681
1681
|
show_caption_above_media: Optional[bool] = Field(default=None)
|
|
1682
1682
|
reply_markup: Optional[InlineKeyboardMarkup] = Field(default=None)
|
|
@@ -1727,7 +1727,7 @@ class InlineQueryResultVideo(InlineQueryResult, frozen=True):
|
|
|
1727
1727
|
thumbnail_url: str
|
|
1728
1728
|
title: str
|
|
1729
1729
|
caption: Optional[str] = Field(default=None)
|
|
1730
|
-
parse_mode: Optional[str] = Field(default=
|
|
1730
|
+
parse_mode: Optional[str] = Field(default=enums.ParseMode.HTML.value)
|
|
1731
1731
|
caption_entities: Optional[List[MessageEntity]] = Field(default=None)
|
|
1732
1732
|
show_caption_above_media: Optional[bool] = Field(default=None)
|
|
1733
1733
|
video_width: Optional[int] = Field(default=None)
|
|
@@ -1754,7 +1754,7 @@ class InlineQueryResultVoice(InlineQueryResult, frozen=True):
|
|
|
1754
1754
|
voice_url: str
|
|
1755
1755
|
title: str
|
|
1756
1756
|
caption: Optional[str] = Field(default=None)
|
|
1757
|
-
parse_mode: Optional[str] = Field(default=
|
|
1757
|
+
parse_mode: Optional[str] = Field(default=enums.ParseMode.HTML.value)
|
|
1758
1758
|
caption_entities: Optional[List[MessageEntity]] = Field(default=None)
|
|
1759
1759
|
voice_duration: Optional[int] = Field(default=None)
|
|
1760
1760
|
reply_markup: Optional[InlineKeyboardMarkup] = Field(default=None)
|
|
@@ -1797,7 +1797,7 @@ class InputTextMessageContent(InputMessageContent, frozen=True):
|
|
|
1797
1797
|
'''
|
|
1798
1798
|
|
|
1799
1799
|
message_text: str
|
|
1800
|
-
parse_mode: Optional[str] = Field(default=
|
|
1800
|
+
parse_mode: Optional[str] = Field(default=enums.ParseMode.HTML.value)
|
|
1801
1801
|
entities: Optional[List[MessageEntity]] = Field(default=None)
|
|
1802
1802
|
link_preview_options: Optional[LinkPreviewOptions] = Field(default=None)
|
|
1803
1803
|
|
|
@@ -2350,12 +2350,21 @@ class MessageEntity(BaseModel, frozen=True):
|
|
|
2350
2350
|
|
|
2351
2351
|
@staticmethod
|
|
2352
2352
|
def from_dict(
|
|
2353
|
-
json_data:
|
|
2353
|
+
json_data: dict[str, Any]
|
|
2354
|
+
) -> MessageEntity:
|
|
2355
|
+
'''
|
|
2356
|
+
Converts a JSON dictionary to a `MessageEntity` object.
|
|
2357
|
+
'''
|
|
2358
|
+
return MessageEntity.model_validate(json_data)
|
|
2359
|
+
|
|
2360
|
+
@staticmethod
|
|
2361
|
+
def from_list_of_dicts(
|
|
2362
|
+
list_of_json_data: list[dict[str, Any]]
|
|
2354
2363
|
) -> list[MessageEntity]:
|
|
2355
2364
|
'''
|
|
2356
|
-
Converts a list of JSON dictionaries to a list of `MessageEntity` objects.
|
|
2365
|
+
Converts a **list** of JSON dictionaries to a **list** of `MessageEntity` objects.
|
|
2357
2366
|
'''
|
|
2358
|
-
return [MessageEntity.model_validate(item) for item in
|
|
2367
|
+
return [MessageEntity.model_validate(item) for item in list_of_json_data]
|
|
2359
2368
|
|
|
2360
2369
|
|
|
2361
2370
|
class TextQuote(BaseModel, frozen=True):
|
|
@@ -2674,7 +2683,7 @@ class InputChecklistTask(BaseModel, frozen=True):
|
|
|
2674
2683
|
|
|
2675
2684
|
id: int
|
|
2676
2685
|
text: str
|
|
2677
|
-
parse_mode: Optional[str] = Field(default=
|
|
2686
|
+
parse_mode: Optional[str] = Field(default=enums.ParseMode.HTML.value)
|
|
2678
2687
|
text_entities: Optional[List[MessageEntity]] = Field(default=None)
|
|
2679
2688
|
|
|
2680
2689
|
class InputChecklist(BaseModel, frozen=True):
|
|
@@ -2686,7 +2695,7 @@ class InputChecklist(BaseModel, frozen=True):
|
|
|
2686
2695
|
|
|
2687
2696
|
title: str
|
|
2688
2697
|
tasks: List[InputChecklistTask]
|
|
2689
|
-
parse_mode: Optional[str] = Field(default=
|
|
2698
|
+
parse_mode: Optional[str] = Field(default=enums.ParseMode.HTML.value)
|
|
2690
2699
|
title_entities: Optional[List[MessageEntity]] = Field(default=None)
|
|
2691
2700
|
others_can_add_tasks: Optional[bool] = Field(default=None)
|
|
2692
2701
|
others_can_mark_tasks_as_done: Optional[bool] = Field(default=None)
|
|
@@ -4041,7 +4050,7 @@ class InputFile(BaseModel, frozen=True):
|
|
|
4041
4050
|
|
|
4042
4051
|
file_content: bytes # Raw file content as bytes.
|
|
4043
4052
|
file_name: str # File name, including its extension.
|
|
4044
|
-
mime_type: str
|
|
4053
|
+
mime_type: Optional[str] = Field(default=None) # File MIME type.
|
|
4045
4054
|
|
|
4046
4055
|
|
|
4047
4056
|
class Sticker(BaseModel, frozen=True):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|