multibotkit 0.1.34__py3-none-any.whl → 0.2.0__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.
- multibotkit/dispatchers/yandexmessenger.py +87 -0
- multibotkit/helpers/fb.py +4 -4
- multibotkit/helpers/telegram.py +84 -83
- multibotkit/helpers/viber.py +4 -4
- multibotkit/helpers/vk.py +2 -2
- multibotkit/helpers/yandexmessenger.py +408 -0
- multibotkit/schemas/telegram/incoming.py +13 -17
- multibotkit/schemas/yandexmessenger/__init__.py +0 -0
- multibotkit/schemas/yandexmessenger/incoming.py +77 -0
- multibotkit/schemas/yandexmessenger/outgoing.py +126 -0
- {multibotkit-0.1.34.dist-info → multibotkit-0.2.0.dist-info}/METADATA +19 -8
- {multibotkit-0.1.34.dist-info → multibotkit-0.2.0.dist-info}/RECORD +15 -10
- {multibotkit-0.1.34.dist-info → multibotkit-0.2.0.dist-info}/WHEEL +1 -1
- {multibotkit-0.1.34.dist-info → multibotkit-0.2.0.dist-info/licenses}/LICENSE +0 -0
- {multibotkit-0.1.34.dist-info → multibotkit-0.2.0.dist-info}/top_level.txt +0 -0
multibotkit/helpers/telegram.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
from io import BytesIO
|
|
2
1
|
import json
|
|
3
|
-
from
|
|
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
|
-
|
|
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] =
|
|
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.
|
|
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] =
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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)
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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)
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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)
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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)
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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)
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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)
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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)
|
|
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.
|
|
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)
|
|
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.
|
|
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])
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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])
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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)
|
|
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.
|
|
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)
|
|
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.
|
|
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)
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
1852
|
+
r = await self._perform_async_request(url, set_my_commands.model_dump())
|
|
1852
1853
|
return r
|