multibotkit 0.1.34__py3-none-any.whl → 0.2.1__py3-none-any.whl

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.
@@ -1,6 +1,6 @@
1
- from io import BytesIO
2
1
  import json
3
- from typing import IO, Optional, Union, List, Tuple
2
+ from io import BytesIO
3
+ from typing import IO, List, Optional, Tuple, Union
4
4
 
5
5
  import aiofiles
6
6
  import httpx
@@ -10,30 +10,31 @@ from tenacity import (
10
10
  stop_after_attempt,
11
11
  wait_exponential,
12
12
  )
13
+
13
14
  from multibotkit.helpers.base_helper import BaseHelper
14
15
  from multibotkit.schemas.telegram.outgoing import (
15
16
  Animation,
16
17
  Audio,
18
+ BotCommand,
19
+ CopyMessage,
20
+ DeleteMessage,
21
+ DeleteWebhookParams,
17
22
  Document,
18
23
  EditMessageMediaModel,
19
24
  InlineKeyboardMarkup,
20
25
  InputMedia,
21
26
  InputMediaPhoto,
27
+ Location,
28
+ MediaGroup,
22
29
  Message,
23
30
  Photo,
24
31
  ReplyKeyboardMarkup,
25
- SetWebhookParams,
26
- WebhookInfo,
27
- MediaGroup,
28
32
  ReplyKeyboardRemove,
33
+ SetMyCommands,
34
+ SetWebhookParams,
29
35
  Sticker,
30
36
  Video,
31
- Location,
32
- DeleteWebhookParams,
33
- DeleteMessage,
34
- CopyMessage,
35
- BotCommand,
36
- SetMyCommands,
37
+ WebhookInfo,
37
38
  )
38
39
 
39
40
 
@@ -64,13 +65,13 @@ class TelegramHelper(BaseHelper):
64
65
  self,
65
66
  webhook_url: str,
66
67
  allowed_updates: Optional[List[str]] = None,
67
- secret_token: Optional[str] = False,
68
+ secret_token: Optional[str] = None,
68
69
  ):
69
70
  url = self.tg_base_url + "setWebhook"
70
71
  params = SetWebhookParams(
71
72
  url=webhook_url, allowed_updates=allowed_updates, secret_token=secret_token
72
73
  )
73
- data = params.dict(exclude_none=True)
74
+ data = params.model_dump(exclude_none=True)
74
75
  r = self._perform_sync_request(url, data)
75
76
  return r
76
77
 
@@ -78,27 +79,27 @@ class TelegramHelper(BaseHelper):
78
79
  self,
79
80
  webhook_url: str,
80
81
  allowed_updates: Optional[List[str]] = None,
81
- secret_token: Optional[str] = False,
82
+ secret_token: Optional[str] = None,
82
83
  ):
83
84
  url = self.tg_base_url + "setWebhook"
84
85
  params = SetWebhookParams(
85
86
  url=webhook_url, allowed_updates=allowed_updates, secret_token=secret_token
86
87
  )
87
- data = params.dict(exclude_none=True)
88
+ data = params.model_dump(exclude_none=True)
88
89
  r = await self._perform_async_request(url, data)
89
90
  return r
90
91
 
91
92
  def sync_delete_webhook(self, drop_pending_updates: Optional[bool] = False):
92
93
  url = self.tg_base_url + "deleteWebhook"
93
94
  params = DeleteWebhookParams(drop_pending_updates=drop_pending_updates)
94
- data = params.dict(exclude_none=True)
95
+ data = params.model_dump(exclude_none=True)
95
96
  r = self._perform_sync_request(url, data)
96
97
  return r
97
98
 
98
99
  async def async_delete_webhook(self, drop_pending_updates: Optional[bool] = False):
99
100
  url = self.tg_base_url + "deleteWebhook"
100
101
  params = DeleteWebhookParams(drop_pending_updates=drop_pending_updates)
101
- data = params.dict(exclude_none=True)
102
+ data = params.model_dump(exclude_none=True)
102
103
  r = await self._perform_async_request(url, data)
103
104
  return r
104
105
 
@@ -118,7 +119,7 @@ class TelegramHelper(BaseHelper):
118
119
  longitude=longitude,
119
120
  reply_markup=reply_markup,
120
121
  )
121
- data = params.dict(exclude_none=True)
122
+ data = params.model_dump(exclude_none=True)
122
123
  r = self._perform_sync_request(url, data)
123
124
  return r
124
125
 
@@ -138,7 +139,7 @@ class TelegramHelper(BaseHelper):
138
139
  longitude=longitude,
139
140
  reply_markup=reply_markup,
140
141
  )
141
- data = params.dict(exclude_none=True)
142
+ data = params.model_dump(exclude_none=True)
142
143
  r = await self._perform_async_request(url, data)
143
144
  return r
144
145
 
@@ -164,7 +165,7 @@ class TelegramHelper(BaseHelper):
164
165
  allow_sending_without_reply=allow_sending_without_reply,
165
166
  )
166
167
 
167
- data = message.dict(exclude_none=True)
168
+ data = message.model_dump(exclude_none=True)
168
169
  data.update({"parse_mode": parse_mode})
169
170
  r = self._perform_sync_request(url, data)
170
171
  return r
@@ -191,7 +192,7 @@ class TelegramHelper(BaseHelper):
191
192
  allow_sending_without_reply=allow_sending_without_reply,
192
193
  )
193
194
 
194
- data = message.dict(exclude_none=True)
195
+ data = message.model_dump(exclude_none=True)
195
196
  data.update({"parse_mode": parse_mode})
196
197
  r = await self._perform_async_request(url, data)
197
198
  return r
@@ -538,7 +539,7 @@ class TelegramHelper(BaseHelper):
538
539
  url = self.tg_base_url + "deleteMessage"
539
540
  delete_message = DeleteMessage(chat_id=chat_id, message_id=message_id)
540
541
 
541
- r = self._perform_sync_request(url, delete_message.dict())
542
+ r = self._perform_sync_request(url, delete_message.model_dump())
542
543
  return r
543
544
 
544
545
  async def async_delete_message(
@@ -549,7 +550,7 @@ class TelegramHelper(BaseHelper):
549
550
  url = self.tg_base_url + "deleteMessage"
550
551
  delete_message = DeleteMessage(chat_id=chat_id, message_id=message_id)
551
552
 
552
- r = await self._perform_async_request(url, delete_message.dict())
553
+ r = await self._perform_async_request(url, delete_message.model_dump())
553
554
  return r
554
555
 
555
556
  def sync_copy_message(
@@ -563,7 +564,7 @@ class TelegramHelper(BaseHelper):
563
564
  chat_id=chat_id, message_id=message_id, from_chat_id=from_chat_id
564
565
  )
565
566
 
566
- r = self._perform_sync_request(url, copy_message.dict())
567
+ r = self._perform_sync_request(url, copy_message.model_dump())
567
568
  return r
568
569
 
569
570
  async def async_copy_message(
@@ -577,7 +578,7 @@ class TelegramHelper(BaseHelper):
577
578
  chat_id=chat_id, message_id=message_id, from_chat_id=from_chat_id
578
579
  )
579
580
 
580
- r = await self._perform_async_request(url, copy_message.dict())
581
+ r = await self._perform_async_request(url, copy_message.model_dump())
581
582
  return r
582
583
 
583
584
  def sync_edit_message_text(
@@ -598,7 +599,7 @@ class TelegramHelper(BaseHelper):
598
599
  "link_preview_options": {"is_disabled": disable_web_page_preview},
599
600
  }
600
601
  if reply_markup:
601
- data["reply_markup"] = reply_markup.dict(exclude_none=True)
602
+ data["reply_markup"] = reply_markup.model_dump(exclude_none=True)
602
603
 
603
604
  r = self._perform_sync_request(url, data)
604
605
  return r
@@ -621,7 +622,7 @@ class TelegramHelper(BaseHelper):
621
622
  "link_preview_options": {"is_disabled": disable_web_page_preview},
622
623
  }
623
624
  if reply_markup:
624
- data["reply_markup"] = reply_markup.dict(exclude_none=True)
625
+ data["reply_markup"] = reply_markup.model_dump(exclude_none=True)
625
626
 
626
627
  r = await self._perform_async_request(url, data)
627
628
  return r
@@ -671,7 +672,7 @@ class TelegramHelper(BaseHelper):
671
672
  data = {
672
673
  "chat_id": chat_id,
673
674
  "message_id": message_id,
674
- "reply_markup": reply_markup.dict(exclude_none=True),
675
+ "reply_markup": reply_markup.model_dump(exclude_none=True),
675
676
  }
676
677
  except AttributeError:
677
678
  data = {"chat_id": chat_id, "message_id": message_id, "reply_markup": {}}
@@ -689,7 +690,7 @@ class TelegramHelper(BaseHelper):
689
690
  data = {
690
691
  "chat_id": chat_id,
691
692
  "message_id": message_id,
692
- "reply_markup": reply_markup.dict(exclude_none=True),
693
+ "reply_markup": reply_markup.model_dump(exclude_none=True),
693
694
  }
694
695
  except AttributeError:
695
696
  data = {"chat_id": chat_id, "message_id": message_id, "reply_markup": {}}
@@ -707,7 +708,7 @@ class TelegramHelper(BaseHelper):
707
708
  inline_message_id: Optional[Union[int, str]] = None,
708
709
  parse_mode: Optional[str] = "HTML",
709
710
  ):
710
- if type(media) == str:
711
+ if type(media) is str:
711
712
  if media.startswith("http://") or media.startswith("https://"):
712
713
  media_obj = InputMedia(
713
714
  type=media_type, media=media, caption=caption, parse_mode=parse_mode
@@ -721,7 +722,7 @@ class TelegramHelper(BaseHelper):
721
722
  )
722
723
 
723
724
  url = self.tg_base_url + "editMessageMedia"
724
- data = data_obj.dict(exclude_none=True)
725
+ data = data_obj.model_dump(exclude_none=True)
725
726
 
726
727
  r = self._perform_sync_request(url, data)
727
728
  return r
@@ -746,7 +747,7 @@ class TelegramHelper(BaseHelper):
746
747
  )
747
748
 
748
749
  url = self.tg_base_url + "editMessageMedia"
749
- data = data_obj.dict(exclude_none=True)
750
+ data = data_obj.model_dump(exclude_none=True)
750
751
  data["media"] = json.dumps(data["media"])
751
752
  if "reply_markup" in data.keys():
752
753
  data["reply_markup"] = json.dumps(data["reply_markup"])
@@ -769,7 +770,7 @@ class TelegramHelper(BaseHelper):
769
770
  )
770
771
 
771
772
  url = self.tg_base_url + "editMessageMedia"
772
- data = data_obj.dict(exclude_none=True)
773
+ data = data_obj.model_dump(exclude_none=True)
773
774
 
774
775
  r = self._perform_sync_request(url, data)
775
776
  return r
@@ -789,7 +790,7 @@ class TelegramHelper(BaseHelper):
789
790
  )
790
791
 
791
792
  url = self.tg_base_url + "editMessageMedia"
792
- data = data_obj.dict(exclude_none=True)
793
+ data = data_obj.model_dump(exclude_none=True)
793
794
  data["media"] = json.dumps(data["media"])
794
795
  if "reply_markup" in data.keys():
795
796
  data["reply_markup"] = json.dumps(data["reply_markup"])
@@ -809,7 +810,7 @@ class TelegramHelper(BaseHelper):
809
810
  inline_message_id: Optional[Union[int, str]] = None,
810
811
  parse_mode: Optional[str] = "HTML",
811
812
  ):
812
- if type(media) == str:
813
+ if type(media) is str:
813
814
  if media.startswith("http://") or media.startswith("https://"):
814
815
  media_obj = InputMedia(
815
816
  type=media_type, media=media, caption=caption, parse_mode=parse_mode
@@ -823,7 +824,7 @@ class TelegramHelper(BaseHelper):
823
824
  )
824
825
 
825
826
  url = self.tg_base_url + "editMessageMedia"
826
- data = data_obj.dict(exclude_none=True)
827
+ data = data_obj.model_dump(exclude_none=True)
827
828
 
828
829
  r = await self._perform_async_request(url, data)
829
830
  return r
@@ -848,7 +849,7 @@ class TelegramHelper(BaseHelper):
848
849
  )
849
850
 
850
851
  url = self.tg_base_url + "editMessageMedia"
851
- data = data_obj.dict(exclude_none=True)
852
+ data = data_obj.model_dump(exclude_none=True)
852
853
  data["media"] = json.dumps(data["media"])
853
854
  if "reply_markup" in data.keys():
854
855
  data["reply_markup"] = json.dumps(data["reply_markup"])
@@ -871,7 +872,7 @@ class TelegramHelper(BaseHelper):
871
872
  )
872
873
 
873
874
  url = self.tg_base_url + "editMessageMedia"
874
- data = data_obj.dict(exclude_none=True)
875
+ data = data_obj.model_dump(exclude_none=True)
875
876
 
876
877
  r = await self._perform_async_request(url, data)
877
878
  return r
@@ -891,7 +892,7 @@ class TelegramHelper(BaseHelper):
891
892
  )
892
893
 
893
894
  url = self.tg_base_url + "editMessageMedia"
894
- data = data_obj.dict(exclude_none=True)
895
+ data = data_obj.model_dump(exclude_none=True)
895
896
  data["media"] = json.dumps(data["media"])
896
897
  if "reply_markup" in data.keys():
897
898
  data["reply_markup"] = json.dumps(data["reply_markup"])
@@ -912,7 +913,7 @@ class TelegramHelper(BaseHelper):
912
913
  allow_sending_without_reply: Optional[bool] = None,
913
914
  reply_markup: Optional[Union[InlineKeyboardMarkup, ReplyKeyboardMarkup]] = None,
914
915
  ):
915
- if type(photo) == str:
916
+ if type(photo) is str:
916
917
  if photo.startswith("http://") or photo.startswith("https://"):
917
918
  photo_obj = Photo(
918
919
  chat_id=chat_id,
@@ -927,7 +928,7 @@ class TelegramHelper(BaseHelper):
927
928
  )
928
929
 
929
930
  url = self.tg_base_url + "sendPhoto"
930
- data = photo_obj.dict(exclude_none=True)
931
+ data = photo_obj.model_dump(exclude_none=True)
931
932
 
932
933
  r = self._perform_sync_request(url, data)
933
934
  return r
@@ -949,7 +950,7 @@ class TelegramHelper(BaseHelper):
949
950
  )
950
951
 
951
952
  url = self.tg_base_url + "sendPhoto"
952
- data = photo_obj.dict(exclude_none=True)
953
+ data = photo_obj.model_dump(exclude_none=True)
953
954
  if "reply_markup" in data.keys():
954
955
  data["reply_markup"] = json.dumps(data["reply_markup"])
955
956
  files = {photo: opened_photo}
@@ -972,7 +973,7 @@ class TelegramHelper(BaseHelper):
972
973
  )
973
974
 
974
975
  url = self.tg_base_url + "sendPhoto"
975
- data = photo_obj.dict(exclude_none=True)
976
+ data = photo_obj.model_dump(exclude_none=True)
976
977
 
977
978
  r = self._perform_sync_request(url, data)
978
979
  return r
@@ -990,7 +991,7 @@ class TelegramHelper(BaseHelper):
990
991
  )
991
992
 
992
993
  url = self.tg_base_url + "sendPhoto"
993
- data = photo_obj.dict(exclude_none=True)
994
+ data = photo_obj.model_dump(exclude_none=True)
994
995
  if "reply_markup" in data.keys():
995
996
  data["reply_markup"] = json.dumps(data["reply_markup"])
996
997
  files = {"image": photo}
@@ -1010,7 +1011,7 @@ class TelegramHelper(BaseHelper):
1010
1011
  allow_sending_without_reply: Optional[bool] = None,
1011
1012
  reply_markup: Optional[Union[InlineKeyboardMarkup, ReplyKeyboardMarkup]] = None,
1012
1013
  ):
1013
- if type(photo) == str:
1014
+ if type(photo) is str:
1014
1015
  if photo.startswith("http://") or photo.startswith("https://"):
1015
1016
  photo_obj = Photo(
1016
1017
  chat_id=chat_id,
@@ -1025,7 +1026,7 @@ class TelegramHelper(BaseHelper):
1025
1026
  )
1026
1027
 
1027
1028
  url = self.tg_base_url + "sendPhoto"
1028
- data = photo_obj.dict(exclude_none=True)
1029
+ data = photo_obj.model_dump(exclude_none=True)
1029
1030
  r = await self._perform_async_request(url, data)
1030
1031
  return r
1031
1032
 
@@ -1047,7 +1048,7 @@ class TelegramHelper(BaseHelper):
1047
1048
  )
1048
1049
 
1049
1050
  url = self.tg_base_url + "sendPhoto"
1050
- data = photo_obj.dict(exclude_none=True)
1051
+ data = photo_obj.model_dump(exclude_none=True)
1051
1052
  if "reply_markup" in data.keys():
1052
1053
  data["reply_markup"] = json.dumps(data["reply_markup"])
1053
1054
  files = {photo: content}
@@ -1069,7 +1070,7 @@ class TelegramHelper(BaseHelper):
1069
1070
  )
1070
1071
 
1071
1072
  url = self.tg_base_url + "sendPhoto"
1072
- data = photo_obj.dict(exclude_none=True)
1073
+ data = photo_obj.model_dump(exclude_none=True)
1073
1074
  r = await self._perform_async_request(url, data)
1074
1075
  return r
1075
1076
 
@@ -1086,7 +1087,7 @@ class TelegramHelper(BaseHelper):
1086
1087
  )
1087
1088
 
1088
1089
  url = self.tg_base_url + "sendPhoto"
1089
- data = photo_obj.dict(exclude_none=True)
1090
+ data = photo_obj.model_dump(exclude_none=True)
1090
1091
  if "reply_markup" in data.keys():
1091
1092
  data["reply_markup"] = json.dumps(data["reply_markup"])
1092
1093
  files = {"image": photo}
@@ -1105,7 +1106,7 @@ class TelegramHelper(BaseHelper):
1105
1106
  allow_sending_without_reply: Optional[bool] = None,
1106
1107
  reply_markup: Optional[Union[InlineKeyboardMarkup, ReplyKeyboardMarkup]] = None,
1107
1108
  ):
1108
- if type(video) == str:
1109
+ if type(video) is str:
1109
1110
  if video.startswith("http://") or video.startswith("https://"):
1110
1111
  video_obj = Video(
1111
1112
  chat_id=chat_id,
@@ -1120,7 +1121,7 @@ class TelegramHelper(BaseHelper):
1120
1121
  )
1121
1122
 
1122
1123
  url = self.tg_base_url + "sendVideo"
1123
- data = video_obj.dict(exclude_none=True)
1124
+ data = video_obj.model_dump(exclude_none=True)
1124
1125
 
1125
1126
  r = self._perform_sync_request(url, data)
1126
1127
  return r
@@ -1142,7 +1143,7 @@ class TelegramHelper(BaseHelper):
1142
1143
  )
1143
1144
 
1144
1145
  url = self.tg_base_url + "sendVideo"
1145
- data = video_obj.dict(exclude_none=True)
1146
+ data = video_obj.model_dump(exclude_none=True)
1146
1147
  if "reply_markup" in data.keys():
1147
1148
  data["reply_markup"] = json.dumps(data["reply_markup"])
1148
1149
  files = {video: opened_video}
@@ -1165,7 +1166,7 @@ class TelegramHelper(BaseHelper):
1165
1166
  )
1166
1167
 
1167
1168
  url = self.tg_base_url + "sendVideo"
1168
- data = video_obj.dict(exclude_none=True)
1169
+ data = video_obj.model_dump(exclude_none=True)
1169
1170
 
1170
1171
  r = self._perform_sync_request(url, data)
1171
1172
  return r
@@ -1183,7 +1184,7 @@ class TelegramHelper(BaseHelper):
1183
1184
  )
1184
1185
 
1185
1186
  url = self.tg_base_url + "sendVideo"
1186
- data = video_obj.dict(exclude_none=True)
1187
+ data = video_obj.model_dump(exclude_none=True)
1187
1188
  if "reply_markup" in data.keys():
1188
1189
  data["reply_markup"] = json.dumps(data["reply_markup"])
1189
1190
  files = {"video": video}
@@ -1203,7 +1204,7 @@ class TelegramHelper(BaseHelper):
1203
1204
  allow_sending_without_reply: Optional[bool] = None,
1204
1205
  reply_markup: Optional[Union[InlineKeyboardMarkup, ReplyKeyboardMarkup]] = None,
1205
1206
  ):
1206
- if type(video) == str:
1207
+ if type(video) is str:
1207
1208
  if video.startswith("http://") or video.startswith("https://"):
1208
1209
  video_obj = Video(
1209
1210
  chat_id=chat_id,
@@ -1218,7 +1219,7 @@ class TelegramHelper(BaseHelper):
1218
1219
  )
1219
1220
 
1220
1221
  url = self.tg_base_url + "sendVideo"
1221
- data = video_obj.dict(exclude_none=True)
1222
+ data = video_obj.model_dump(exclude_none=True)
1222
1223
  r = await self._perform_async_request(url, data)
1223
1224
  return r
1224
1225
 
@@ -1240,7 +1241,7 @@ class TelegramHelper(BaseHelper):
1240
1241
  )
1241
1242
 
1242
1243
  url = self.tg_base_url + "sendVideo"
1243
- data = video_obj.dict(exclude_none=True)
1244
+ data = video_obj.model_dump(exclude_none=True)
1244
1245
  if "reply_markup" in data.keys():
1245
1246
  data["reply_markup"] = json.dumps(data["reply_markup"])
1246
1247
  files = {video: content}
@@ -1262,7 +1263,7 @@ class TelegramHelper(BaseHelper):
1262
1263
  )
1263
1264
 
1264
1265
  url = self.tg_base_url + "sendVideo"
1265
- data = video_obj.dict(exclude_none=True)
1266
+ data = video_obj.model_dump(exclude_none=True)
1266
1267
  r = await self._perform_async_request(url, data)
1267
1268
  return r
1268
1269
 
@@ -1279,7 +1280,7 @@ class TelegramHelper(BaseHelper):
1279
1280
  )
1280
1281
 
1281
1282
  url = self.tg_base_url + "sendVideo"
1282
- data = video_obj.dict(exclude_none=True)
1283
+ data = video_obj.model_dump(exclude_none=True)
1283
1284
  if "reply_markup" in data.keys():
1284
1285
  data["reply_markup"] = json.dumps(data["reply_markup"])
1285
1286
  files = {"video": video}
@@ -1302,7 +1303,7 @@ class TelegramHelper(BaseHelper):
1302
1303
  files = {}
1303
1304
  document_str = None
1304
1305
 
1305
- if type(document) == str:
1306
+ if type(document) is str:
1306
1307
  if not (document.startswith("http://") or document.startswith("https://")):
1307
1308
  ends = [".pdf", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx"]
1308
1309
  for end in ends:
@@ -1331,7 +1332,7 @@ class TelegramHelper(BaseHelper):
1331
1332
  )
1332
1333
 
1333
1334
  url = self.tg_base_url + "sendDocument"
1334
- data = document_obj.dict(exclude_none=True)
1335
+ data = document_obj.model_dump(exclude_none=True)
1335
1336
  if "reply_markup" in data.keys():
1336
1337
  data["reply_markup"] = json.dumps(data["reply_markup"])
1337
1338
 
@@ -1358,7 +1359,7 @@ class TelegramHelper(BaseHelper):
1358
1359
  files = {}
1359
1360
  document_str = None
1360
1361
 
1361
- if type(document) == str:
1362
+ if type(document) is str:
1362
1363
  if not (document.startswith("http://") or document.startswith("https://")):
1363
1364
  ends = [".pdf", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx"]
1364
1365
  for end in ends:
@@ -1387,7 +1388,7 @@ class TelegramHelper(BaseHelper):
1387
1388
  )
1388
1389
 
1389
1390
  url = self.tg_base_url + "sendDocument"
1390
- data = document_obj.dict(exclude_none=True)
1391
+ data = document_obj.model_dump(exclude_none=True)
1391
1392
 
1392
1393
  if "reply_markup" in data.keys():
1393
1394
  data["reply_markup"] = json.dumps(data["reply_markup"])
@@ -1452,14 +1453,14 @@ class TelegramHelper(BaseHelper):
1452
1453
  files = {}
1453
1454
  photos_list = []
1454
1455
 
1455
- if type(photos[-1]) == str:
1456
+ if type(photos[-1]) is str:
1456
1457
  if photos[-1].startswith("http://") or photos[-1].startswith("https://"):
1457
1458
  for photo in photos:
1458
1459
  photos_list.append(InputMediaPhoto(media=photo))
1459
1460
 
1460
1461
  media_group = MediaGroup(chat_id=chat_id, media=photos_list)
1461
1462
  url = self.tg_base_url + "sendMediaGroup"
1462
- data = media_group.dict(exclude_none=True)
1463
+ data = media_group.model_dump(exclude_none=True)
1463
1464
  r = self._perform_sync_request(url, data)
1464
1465
  return r
1465
1466
 
@@ -1473,7 +1474,7 @@ class TelegramHelper(BaseHelper):
1473
1474
 
1474
1475
  media_group = MediaGroup(chat_id=chat_id, media=photos_list)
1475
1476
  url = self.tg_base_url + "sendMediaGroup"
1476
- data = media_group.dict(exclude_none=True)
1477
+ data = media_group.model_dump(exclude_none=True)
1477
1478
  data["media"] = json.dumps(data["media"])
1478
1479
  r = self._perform_sync_request(
1479
1480
  url, data, use_json=False, files=files
@@ -1485,7 +1486,7 @@ class TelegramHelper(BaseHelper):
1485
1486
 
1486
1487
  media_group = MediaGroup(chat_id=chat_id, media=photos_list)
1487
1488
  url = self.tg_base_url + "sendMediaGroup"
1488
- data = media_group.dict(exclude_none=True)
1489
+ data = media_group.model_dump(exclude_none=True)
1489
1490
  r = self._perform_sync_request(url, data)
1490
1491
  return r
1491
1492
 
@@ -1495,7 +1496,7 @@ class TelegramHelper(BaseHelper):
1495
1496
 
1496
1497
  media_group = MediaGroup(chat_id=chat_id, media=photos_list)
1497
1498
  url = self.tg_base_url + "sendMediaGroup"
1498
- data = media_group.dict(exclude_none=True)
1499
+ data = media_group.model_dump(exclude_none=True)
1499
1500
  data["media"] = json.dumps(data["media"])
1500
1501
  r = self._perform_sync_request(url, data, use_json=False, files=files)
1501
1502
  return r
@@ -1506,14 +1507,14 @@ class TelegramHelper(BaseHelper):
1506
1507
  files = {}
1507
1508
  photos_list = []
1508
1509
 
1509
- if type(photos[-1]) == str:
1510
+ if type(photos[-1]) is str:
1510
1511
  if photos[-1].startswith("http://") or photos[-1].startswith("https://"):
1511
1512
  for photo in photos:
1512
1513
  photos_list.append(InputMediaPhoto(media=photo))
1513
1514
 
1514
1515
  media_group = MediaGroup(chat_id=chat_id, media=photos_list)
1515
1516
  url = self.tg_base_url + "sendMediaGroup"
1516
- data = media_group.dict(exclude_none=True)
1517
+ data = media_group.model_dump(exclude_none=True)
1517
1518
  r = await self._perform_async_request(url, data)
1518
1519
  return r
1519
1520
 
@@ -1528,7 +1529,7 @@ class TelegramHelper(BaseHelper):
1528
1529
 
1529
1530
  media_group = MediaGroup(chat_id=chat_id, media=photos_list)
1530
1531
  url = self.tg_base_url + "sendMediaGroup"
1531
- data = media_group.dict(exclude_none=True)
1532
+ data = media_group.model_dump(exclude_none=True)
1532
1533
  data["media"] = json.dumps(data["media"])
1533
1534
  r = await self._perform_async_request(
1534
1535
  url, data, use_json=False, files=files
@@ -1540,7 +1541,7 @@ class TelegramHelper(BaseHelper):
1540
1541
 
1541
1542
  media_group = MediaGroup(chat_id=chat_id, media=photos_list)
1542
1543
  url = self.tg_base_url + "sendMediaGroup"
1543
- data = media_group.dict(exclude_none=True)
1544
+ data = media_group.model_dump(exclude_none=True)
1544
1545
  r = await self._perform_async_request(url, data)
1545
1546
  return r
1546
1547
 
@@ -1550,7 +1551,7 @@ class TelegramHelper(BaseHelper):
1550
1551
 
1551
1552
  media_group = MediaGroup(chat_id=chat_id, media=photos_list)
1552
1553
  url = self.tg_base_url + "sendMediaGroup"
1553
- data = media_group.dict(exclude_none=True)
1554
+ data = media_group.model_dump(exclude_none=True)
1554
1555
  data["media"] = json.dumps(data["media"])
1555
1556
  r = await self._perform_async_request(url, data, use_json=False, files=files)
1556
1557
  return r
@@ -1575,7 +1576,7 @@ class TelegramHelper(BaseHelper):
1575
1576
  files = {}
1576
1577
  animation_str = None
1577
1578
 
1578
- if type(animation) == str:
1579
+ if type(animation) is str:
1579
1580
  if not (
1580
1581
  animation.startswith("http://") or animation.startswith("https://")
1581
1582
  ):
@@ -1610,7 +1611,7 @@ class TelegramHelper(BaseHelper):
1610
1611
  )
1611
1612
 
1612
1613
  url = self.tg_base_url + "sendAnimation"
1613
- data = animation_obj.dict(exclude_none=True)
1614
+ data = animation_obj.model_dump(exclude_none=True)
1614
1615
  if "reply_markup" in data.keys():
1615
1616
  data["reply_markup"] = json.dumps(data["reply_markup"])
1616
1617
 
@@ -1641,7 +1642,7 @@ class TelegramHelper(BaseHelper):
1641
1642
  files = {}
1642
1643
  animation_str = None
1643
1644
 
1644
- if type(animation) == str:
1645
+ if type(animation) is str:
1645
1646
  if not (
1646
1647
  animation.startswith("http://") or animation.startswith("https://")
1647
1648
  ):
@@ -1676,7 +1677,7 @@ class TelegramHelper(BaseHelper):
1676
1677
  )
1677
1678
 
1678
1679
  url = self.tg_base_url + "sendAnimation"
1679
- data = animation_obj.dict(exclude_none=True)
1680
+ data = animation_obj.model_dump(exclude_none=True)
1680
1681
  if "reply_markup" in data.keys():
1681
1682
  data["reply_markup"] = json.dumps(data["reply_markup"])
1682
1683
 
@@ -1709,7 +1710,7 @@ class TelegramHelper(BaseHelper):
1709
1710
  files = {}
1710
1711
  audio_str = None
1711
1712
 
1712
- if type(audio) == str:
1713
+ if type(audio) is str:
1713
1714
  if not (audio.startswith("http://") or audio.startswith("https://")):
1714
1715
  ends = [".mp3"]
1715
1716
  for end in ends:
@@ -1742,7 +1743,7 @@ class TelegramHelper(BaseHelper):
1742
1743
  )
1743
1744
 
1744
1745
  url = self.tg_base_url + "sendAudio"
1745
- data = audio_obj.dict(exclude_none=True)
1746
+ data = audio_obj.model_dump(exclude_none=True)
1746
1747
  if "reply_markup" in data.keys():
1747
1748
  data["reply_markup"] = json.dumps(data["reply_markup"])
1748
1749
 
@@ -1776,7 +1777,7 @@ class TelegramHelper(BaseHelper):
1776
1777
  )
1777
1778
 
1778
1779
  url = self.tg_base_url + "sendSticker"
1779
- data = sticker_obj.dict(exclude_none=True)
1780
+ data = sticker_obj.model_dump(exclude_none=True)
1780
1781
  if "reply_markup" in data.keys():
1781
1782
  data["reply_markup"] = json.dumps(data["reply_markup"])
1782
1783
 
@@ -1804,7 +1805,7 @@ class TelegramHelper(BaseHelper):
1804
1805
  )
1805
1806
 
1806
1807
  url = self.tg_base_url + "sendSticker"
1807
- data = sticker_obj.dict(exclude_none=True)
1808
+ data = sticker_obj.model_dump(exclude_none=True)
1808
1809
  if "reply_markup" in data.keys():
1809
1810
  data["reply_markup"] = json.dumps(data["reply_markup"])
1810
1811
 
@@ -1837,7 +1838,7 @@ class TelegramHelper(BaseHelper):
1837
1838
 
1838
1839
  set_my_commands = SetMyCommands(commands=commands_list)
1839
1840
 
1840
- r = self._perform_sync_request(url, set_my_commands.dict())
1841
+ r = self._perform_sync_request(url, set_my_commands.model_dump())
1841
1842
  return r
1842
1843
 
1843
1844
  async def async_set_my_commands(self, commands: List[Tuple[str, str]]):
@@ -1848,5 +1849,5 @@ class TelegramHelper(BaseHelper):
1848
1849
 
1849
1850
  set_my_commands = SetMyCommands(commands=commands_list)
1850
1851
 
1851
- r = await self._perform_async_request(url, set_my_commands.dict())
1852
+ r = await self._perform_async_request(url, set_my_commands.model_dump())
1852
1853
  return r