multibotkit 0.1.33__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 +96 -85
- 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/telegram/outgoing.py +6 -0
- multibotkit/schemas/yandexmessenger/__init__.py +0 -0
- multibotkit/schemas/yandexmessenger/incoming.py +77 -0
- multibotkit/schemas/yandexmessenger/outgoing.py +126 -0
- {multibotkit-0.1.33.dist-info → multibotkit-0.2.0.dist-info}/METADATA +19 -8
- {multibotkit-0.1.33.dist-info → multibotkit-0.2.0.dist-info}/RECORD +16 -11
- {multibotkit-0.1.33.dist-info → multibotkit-0.2.0.dist-info}/WHEEL +1 -1
- {multibotkit-0.1.33.dist-info → multibotkit-0.2.0.dist-info/licenses}/LICENSE +0 -0
- {multibotkit-0.1.33.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
|
|
|
@@ -61,34 +62,44 @@ class TelegramHelper(BaseHelper):
|
|
|
61
62
|
return None
|
|
62
63
|
|
|
63
64
|
def sync_set_webhook(
|
|
64
|
-
self,
|
|
65
|
+
self,
|
|
66
|
+
webhook_url: str,
|
|
67
|
+
allowed_updates: Optional[List[str]] = None,
|
|
68
|
+
secret_token: Optional[str] = None,
|
|
65
69
|
):
|
|
66
70
|
url = self.tg_base_url + "setWebhook"
|
|
67
|
-
params = SetWebhookParams(
|
|
68
|
-
|
|
71
|
+
params = SetWebhookParams(
|
|
72
|
+
url=webhook_url, allowed_updates=allowed_updates, secret_token=secret_token
|
|
73
|
+
)
|
|
74
|
+
data = params.model_dump(exclude_none=True)
|
|
69
75
|
r = self._perform_sync_request(url, data)
|
|
70
76
|
return r
|
|
71
77
|
|
|
72
78
|
async def async_set_webhook(
|
|
73
|
-
self,
|
|
79
|
+
self,
|
|
80
|
+
webhook_url: str,
|
|
81
|
+
allowed_updates: Optional[List[str]] = None,
|
|
82
|
+
secret_token: Optional[str] = None,
|
|
74
83
|
):
|
|
75
84
|
url = self.tg_base_url + "setWebhook"
|
|
76
|
-
params = SetWebhookParams(
|
|
77
|
-
|
|
85
|
+
params = SetWebhookParams(
|
|
86
|
+
url=webhook_url, allowed_updates=allowed_updates, secret_token=secret_token
|
|
87
|
+
)
|
|
88
|
+
data = params.model_dump(exclude_none=True)
|
|
78
89
|
r = await self._perform_async_request(url, data)
|
|
79
90
|
return r
|
|
80
91
|
|
|
81
92
|
def sync_delete_webhook(self, drop_pending_updates: Optional[bool] = False):
|
|
82
93
|
url = self.tg_base_url + "deleteWebhook"
|
|
83
94
|
params = DeleteWebhookParams(drop_pending_updates=drop_pending_updates)
|
|
84
|
-
data = params.
|
|
95
|
+
data = params.model_dump(exclude_none=True)
|
|
85
96
|
r = self._perform_sync_request(url, data)
|
|
86
97
|
return r
|
|
87
98
|
|
|
88
99
|
async def async_delete_webhook(self, drop_pending_updates: Optional[bool] = False):
|
|
89
100
|
url = self.tg_base_url + "deleteWebhook"
|
|
90
101
|
params = DeleteWebhookParams(drop_pending_updates=drop_pending_updates)
|
|
91
|
-
data = params.
|
|
102
|
+
data = params.model_dump(exclude_none=True)
|
|
92
103
|
r = await self._perform_async_request(url, data)
|
|
93
104
|
return r
|
|
94
105
|
|
|
@@ -108,7 +119,7 @@ class TelegramHelper(BaseHelper):
|
|
|
108
119
|
longitude=longitude,
|
|
109
120
|
reply_markup=reply_markup,
|
|
110
121
|
)
|
|
111
|
-
data = params.
|
|
122
|
+
data = params.model_dump(exclude_none=True)
|
|
112
123
|
r = self._perform_sync_request(url, data)
|
|
113
124
|
return r
|
|
114
125
|
|
|
@@ -128,7 +139,7 @@ class TelegramHelper(BaseHelper):
|
|
|
128
139
|
longitude=longitude,
|
|
129
140
|
reply_markup=reply_markup,
|
|
130
141
|
)
|
|
131
|
-
data = params.
|
|
142
|
+
data = params.model_dump(exclude_none=True)
|
|
132
143
|
r = await self._perform_async_request(url, data)
|
|
133
144
|
return r
|
|
134
145
|
|
|
@@ -154,7 +165,7 @@ class TelegramHelper(BaseHelper):
|
|
|
154
165
|
allow_sending_without_reply=allow_sending_without_reply,
|
|
155
166
|
)
|
|
156
167
|
|
|
157
|
-
data = message.
|
|
168
|
+
data = message.model_dump(exclude_none=True)
|
|
158
169
|
data.update({"parse_mode": parse_mode})
|
|
159
170
|
r = self._perform_sync_request(url, data)
|
|
160
171
|
return r
|
|
@@ -181,7 +192,7 @@ class TelegramHelper(BaseHelper):
|
|
|
181
192
|
allow_sending_without_reply=allow_sending_without_reply,
|
|
182
193
|
)
|
|
183
194
|
|
|
184
|
-
data = message.
|
|
195
|
+
data = message.model_dump(exclude_none=True)
|
|
185
196
|
data.update({"parse_mode": parse_mode})
|
|
186
197
|
r = await self._perform_async_request(url, data)
|
|
187
198
|
return r
|
|
@@ -528,7 +539,7 @@ class TelegramHelper(BaseHelper):
|
|
|
528
539
|
url = self.tg_base_url + "deleteMessage"
|
|
529
540
|
delete_message = DeleteMessage(chat_id=chat_id, message_id=message_id)
|
|
530
541
|
|
|
531
|
-
r = self._perform_sync_request(url, delete_message.
|
|
542
|
+
r = self._perform_sync_request(url, delete_message.model_dump())
|
|
532
543
|
return r
|
|
533
544
|
|
|
534
545
|
async def async_delete_message(
|
|
@@ -539,7 +550,7 @@ class TelegramHelper(BaseHelper):
|
|
|
539
550
|
url = self.tg_base_url + "deleteMessage"
|
|
540
551
|
delete_message = DeleteMessage(chat_id=chat_id, message_id=message_id)
|
|
541
552
|
|
|
542
|
-
r = await self._perform_async_request(url, delete_message.
|
|
553
|
+
r = await self._perform_async_request(url, delete_message.model_dump())
|
|
543
554
|
return r
|
|
544
555
|
|
|
545
556
|
def sync_copy_message(
|
|
@@ -553,7 +564,7 @@ class TelegramHelper(BaseHelper):
|
|
|
553
564
|
chat_id=chat_id, message_id=message_id, from_chat_id=from_chat_id
|
|
554
565
|
)
|
|
555
566
|
|
|
556
|
-
r = self._perform_sync_request(url, copy_message.
|
|
567
|
+
r = self._perform_sync_request(url, copy_message.model_dump())
|
|
557
568
|
return r
|
|
558
569
|
|
|
559
570
|
async def async_copy_message(
|
|
@@ -567,7 +578,7 @@ class TelegramHelper(BaseHelper):
|
|
|
567
578
|
chat_id=chat_id, message_id=message_id, from_chat_id=from_chat_id
|
|
568
579
|
)
|
|
569
580
|
|
|
570
|
-
r = await self._perform_async_request(url, copy_message.
|
|
581
|
+
r = await self._perform_async_request(url, copy_message.model_dump())
|
|
571
582
|
return r
|
|
572
583
|
|
|
573
584
|
def sync_edit_message_text(
|
|
@@ -588,7 +599,7 @@ class TelegramHelper(BaseHelper):
|
|
|
588
599
|
"link_preview_options": {"is_disabled": disable_web_page_preview},
|
|
589
600
|
}
|
|
590
601
|
if reply_markup:
|
|
591
|
-
data["reply_markup"] = reply_markup.
|
|
602
|
+
data["reply_markup"] = reply_markup.model_dump(exclude_none=True)
|
|
592
603
|
|
|
593
604
|
r = self._perform_sync_request(url, data)
|
|
594
605
|
return r
|
|
@@ -611,7 +622,7 @@ class TelegramHelper(BaseHelper):
|
|
|
611
622
|
"link_preview_options": {"is_disabled": disable_web_page_preview},
|
|
612
623
|
}
|
|
613
624
|
if reply_markup:
|
|
614
|
-
data["reply_markup"] = reply_markup.
|
|
625
|
+
data["reply_markup"] = reply_markup.model_dump(exclude_none=True)
|
|
615
626
|
|
|
616
627
|
r = await self._perform_async_request(url, data)
|
|
617
628
|
return r
|
|
@@ -661,7 +672,7 @@ class TelegramHelper(BaseHelper):
|
|
|
661
672
|
data = {
|
|
662
673
|
"chat_id": chat_id,
|
|
663
674
|
"message_id": message_id,
|
|
664
|
-
"reply_markup": reply_markup.
|
|
675
|
+
"reply_markup": reply_markup.model_dump(exclude_none=True),
|
|
665
676
|
}
|
|
666
677
|
except AttributeError:
|
|
667
678
|
data = {"chat_id": chat_id, "message_id": message_id, "reply_markup": {}}
|
|
@@ -679,7 +690,7 @@ class TelegramHelper(BaseHelper):
|
|
|
679
690
|
data = {
|
|
680
691
|
"chat_id": chat_id,
|
|
681
692
|
"message_id": message_id,
|
|
682
|
-
"reply_markup": reply_markup.
|
|
693
|
+
"reply_markup": reply_markup.model_dump(exclude_none=True),
|
|
683
694
|
}
|
|
684
695
|
except AttributeError:
|
|
685
696
|
data = {"chat_id": chat_id, "message_id": message_id, "reply_markup": {}}
|
|
@@ -697,7 +708,7 @@ class TelegramHelper(BaseHelper):
|
|
|
697
708
|
inline_message_id: Optional[Union[int, str]] = None,
|
|
698
709
|
parse_mode: Optional[str] = "HTML",
|
|
699
710
|
):
|
|
700
|
-
if type(media)
|
|
711
|
+
if type(media) is str:
|
|
701
712
|
if media.startswith("http://") or media.startswith("https://"):
|
|
702
713
|
media_obj = InputMedia(
|
|
703
714
|
type=media_type, media=media, caption=caption, parse_mode=parse_mode
|
|
@@ -711,7 +722,7 @@ class TelegramHelper(BaseHelper):
|
|
|
711
722
|
)
|
|
712
723
|
|
|
713
724
|
url = self.tg_base_url + "editMessageMedia"
|
|
714
|
-
data = data_obj.
|
|
725
|
+
data = data_obj.model_dump(exclude_none=True)
|
|
715
726
|
|
|
716
727
|
r = self._perform_sync_request(url, data)
|
|
717
728
|
return r
|
|
@@ -736,7 +747,7 @@ class TelegramHelper(BaseHelper):
|
|
|
736
747
|
)
|
|
737
748
|
|
|
738
749
|
url = self.tg_base_url + "editMessageMedia"
|
|
739
|
-
data = data_obj.
|
|
750
|
+
data = data_obj.model_dump(exclude_none=True)
|
|
740
751
|
data["media"] = json.dumps(data["media"])
|
|
741
752
|
if "reply_markup" in data.keys():
|
|
742
753
|
data["reply_markup"] = json.dumps(data["reply_markup"])
|
|
@@ -759,7 +770,7 @@ class TelegramHelper(BaseHelper):
|
|
|
759
770
|
)
|
|
760
771
|
|
|
761
772
|
url = self.tg_base_url + "editMessageMedia"
|
|
762
|
-
data = data_obj.
|
|
773
|
+
data = data_obj.model_dump(exclude_none=True)
|
|
763
774
|
|
|
764
775
|
r = self._perform_sync_request(url, data)
|
|
765
776
|
return r
|
|
@@ -779,7 +790,7 @@ class TelegramHelper(BaseHelper):
|
|
|
779
790
|
)
|
|
780
791
|
|
|
781
792
|
url = self.tg_base_url + "editMessageMedia"
|
|
782
|
-
data = data_obj.
|
|
793
|
+
data = data_obj.model_dump(exclude_none=True)
|
|
783
794
|
data["media"] = json.dumps(data["media"])
|
|
784
795
|
if "reply_markup" in data.keys():
|
|
785
796
|
data["reply_markup"] = json.dumps(data["reply_markup"])
|
|
@@ -799,7 +810,7 @@ class TelegramHelper(BaseHelper):
|
|
|
799
810
|
inline_message_id: Optional[Union[int, str]] = None,
|
|
800
811
|
parse_mode: Optional[str] = "HTML",
|
|
801
812
|
):
|
|
802
|
-
if type(media)
|
|
813
|
+
if type(media) is str:
|
|
803
814
|
if media.startswith("http://") or media.startswith("https://"):
|
|
804
815
|
media_obj = InputMedia(
|
|
805
816
|
type=media_type, media=media, caption=caption, parse_mode=parse_mode
|
|
@@ -813,7 +824,7 @@ class TelegramHelper(BaseHelper):
|
|
|
813
824
|
)
|
|
814
825
|
|
|
815
826
|
url = self.tg_base_url + "editMessageMedia"
|
|
816
|
-
data = data_obj.
|
|
827
|
+
data = data_obj.model_dump(exclude_none=True)
|
|
817
828
|
|
|
818
829
|
r = await self._perform_async_request(url, data)
|
|
819
830
|
return r
|
|
@@ -838,7 +849,7 @@ class TelegramHelper(BaseHelper):
|
|
|
838
849
|
)
|
|
839
850
|
|
|
840
851
|
url = self.tg_base_url + "editMessageMedia"
|
|
841
|
-
data = data_obj.
|
|
852
|
+
data = data_obj.model_dump(exclude_none=True)
|
|
842
853
|
data["media"] = json.dumps(data["media"])
|
|
843
854
|
if "reply_markup" in data.keys():
|
|
844
855
|
data["reply_markup"] = json.dumps(data["reply_markup"])
|
|
@@ -861,7 +872,7 @@ class TelegramHelper(BaseHelper):
|
|
|
861
872
|
)
|
|
862
873
|
|
|
863
874
|
url = self.tg_base_url + "editMessageMedia"
|
|
864
|
-
data = data_obj.
|
|
875
|
+
data = data_obj.model_dump(exclude_none=True)
|
|
865
876
|
|
|
866
877
|
r = await self._perform_async_request(url, data)
|
|
867
878
|
return r
|
|
@@ -881,7 +892,7 @@ class TelegramHelper(BaseHelper):
|
|
|
881
892
|
)
|
|
882
893
|
|
|
883
894
|
url = self.tg_base_url + "editMessageMedia"
|
|
884
|
-
data = data_obj.
|
|
895
|
+
data = data_obj.model_dump(exclude_none=True)
|
|
885
896
|
data["media"] = json.dumps(data["media"])
|
|
886
897
|
if "reply_markup" in data.keys():
|
|
887
898
|
data["reply_markup"] = json.dumps(data["reply_markup"])
|
|
@@ -902,7 +913,7 @@ class TelegramHelper(BaseHelper):
|
|
|
902
913
|
allow_sending_without_reply: Optional[bool] = None,
|
|
903
914
|
reply_markup: Optional[Union[InlineKeyboardMarkup, ReplyKeyboardMarkup]] = None,
|
|
904
915
|
):
|
|
905
|
-
if type(photo)
|
|
916
|
+
if type(photo) is str:
|
|
906
917
|
if photo.startswith("http://") or photo.startswith("https://"):
|
|
907
918
|
photo_obj = Photo(
|
|
908
919
|
chat_id=chat_id,
|
|
@@ -917,7 +928,7 @@ class TelegramHelper(BaseHelper):
|
|
|
917
928
|
)
|
|
918
929
|
|
|
919
930
|
url = self.tg_base_url + "sendPhoto"
|
|
920
|
-
data = photo_obj.
|
|
931
|
+
data = photo_obj.model_dump(exclude_none=True)
|
|
921
932
|
|
|
922
933
|
r = self._perform_sync_request(url, data)
|
|
923
934
|
return r
|
|
@@ -939,7 +950,7 @@ class TelegramHelper(BaseHelper):
|
|
|
939
950
|
)
|
|
940
951
|
|
|
941
952
|
url = self.tg_base_url + "sendPhoto"
|
|
942
|
-
data = photo_obj.
|
|
953
|
+
data = photo_obj.model_dump(exclude_none=True)
|
|
943
954
|
if "reply_markup" in data.keys():
|
|
944
955
|
data["reply_markup"] = json.dumps(data["reply_markup"])
|
|
945
956
|
files = {photo: opened_photo}
|
|
@@ -962,7 +973,7 @@ class TelegramHelper(BaseHelper):
|
|
|
962
973
|
)
|
|
963
974
|
|
|
964
975
|
url = self.tg_base_url + "sendPhoto"
|
|
965
|
-
data = photo_obj.
|
|
976
|
+
data = photo_obj.model_dump(exclude_none=True)
|
|
966
977
|
|
|
967
978
|
r = self._perform_sync_request(url, data)
|
|
968
979
|
return r
|
|
@@ -980,7 +991,7 @@ class TelegramHelper(BaseHelper):
|
|
|
980
991
|
)
|
|
981
992
|
|
|
982
993
|
url = self.tg_base_url + "sendPhoto"
|
|
983
|
-
data = photo_obj.
|
|
994
|
+
data = photo_obj.model_dump(exclude_none=True)
|
|
984
995
|
if "reply_markup" in data.keys():
|
|
985
996
|
data["reply_markup"] = json.dumps(data["reply_markup"])
|
|
986
997
|
files = {"image": photo}
|
|
@@ -1000,7 +1011,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1000
1011
|
allow_sending_without_reply: Optional[bool] = None,
|
|
1001
1012
|
reply_markup: Optional[Union[InlineKeyboardMarkup, ReplyKeyboardMarkup]] = None,
|
|
1002
1013
|
):
|
|
1003
|
-
if type(photo)
|
|
1014
|
+
if type(photo) is str:
|
|
1004
1015
|
if photo.startswith("http://") or photo.startswith("https://"):
|
|
1005
1016
|
photo_obj = Photo(
|
|
1006
1017
|
chat_id=chat_id,
|
|
@@ -1015,7 +1026,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1015
1026
|
)
|
|
1016
1027
|
|
|
1017
1028
|
url = self.tg_base_url + "sendPhoto"
|
|
1018
|
-
data = photo_obj.
|
|
1029
|
+
data = photo_obj.model_dump(exclude_none=True)
|
|
1019
1030
|
r = await self._perform_async_request(url, data)
|
|
1020
1031
|
return r
|
|
1021
1032
|
|
|
@@ -1037,7 +1048,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1037
1048
|
)
|
|
1038
1049
|
|
|
1039
1050
|
url = self.tg_base_url + "sendPhoto"
|
|
1040
|
-
data = photo_obj.
|
|
1051
|
+
data = photo_obj.model_dump(exclude_none=True)
|
|
1041
1052
|
if "reply_markup" in data.keys():
|
|
1042
1053
|
data["reply_markup"] = json.dumps(data["reply_markup"])
|
|
1043
1054
|
files = {photo: content}
|
|
@@ -1059,7 +1070,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1059
1070
|
)
|
|
1060
1071
|
|
|
1061
1072
|
url = self.tg_base_url + "sendPhoto"
|
|
1062
|
-
data = photo_obj.
|
|
1073
|
+
data = photo_obj.model_dump(exclude_none=True)
|
|
1063
1074
|
r = await self._perform_async_request(url, data)
|
|
1064
1075
|
return r
|
|
1065
1076
|
|
|
@@ -1076,7 +1087,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1076
1087
|
)
|
|
1077
1088
|
|
|
1078
1089
|
url = self.tg_base_url + "sendPhoto"
|
|
1079
|
-
data = photo_obj.
|
|
1090
|
+
data = photo_obj.model_dump(exclude_none=True)
|
|
1080
1091
|
if "reply_markup" in data.keys():
|
|
1081
1092
|
data["reply_markup"] = json.dumps(data["reply_markup"])
|
|
1082
1093
|
files = {"image": photo}
|
|
@@ -1095,7 +1106,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1095
1106
|
allow_sending_without_reply: Optional[bool] = None,
|
|
1096
1107
|
reply_markup: Optional[Union[InlineKeyboardMarkup, ReplyKeyboardMarkup]] = None,
|
|
1097
1108
|
):
|
|
1098
|
-
if type(video)
|
|
1109
|
+
if type(video) is str:
|
|
1099
1110
|
if video.startswith("http://") or video.startswith("https://"):
|
|
1100
1111
|
video_obj = Video(
|
|
1101
1112
|
chat_id=chat_id,
|
|
@@ -1110,7 +1121,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1110
1121
|
)
|
|
1111
1122
|
|
|
1112
1123
|
url = self.tg_base_url + "sendVideo"
|
|
1113
|
-
data = video_obj.
|
|
1124
|
+
data = video_obj.model_dump(exclude_none=True)
|
|
1114
1125
|
|
|
1115
1126
|
r = self._perform_sync_request(url, data)
|
|
1116
1127
|
return r
|
|
@@ -1132,7 +1143,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1132
1143
|
)
|
|
1133
1144
|
|
|
1134
1145
|
url = self.tg_base_url + "sendVideo"
|
|
1135
|
-
data = video_obj.
|
|
1146
|
+
data = video_obj.model_dump(exclude_none=True)
|
|
1136
1147
|
if "reply_markup" in data.keys():
|
|
1137
1148
|
data["reply_markup"] = json.dumps(data["reply_markup"])
|
|
1138
1149
|
files = {video: opened_video}
|
|
@@ -1155,7 +1166,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1155
1166
|
)
|
|
1156
1167
|
|
|
1157
1168
|
url = self.tg_base_url + "sendVideo"
|
|
1158
|
-
data = video_obj.
|
|
1169
|
+
data = video_obj.model_dump(exclude_none=True)
|
|
1159
1170
|
|
|
1160
1171
|
r = self._perform_sync_request(url, data)
|
|
1161
1172
|
return r
|
|
@@ -1173,7 +1184,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1173
1184
|
)
|
|
1174
1185
|
|
|
1175
1186
|
url = self.tg_base_url + "sendVideo"
|
|
1176
|
-
data = video_obj.
|
|
1187
|
+
data = video_obj.model_dump(exclude_none=True)
|
|
1177
1188
|
if "reply_markup" in data.keys():
|
|
1178
1189
|
data["reply_markup"] = json.dumps(data["reply_markup"])
|
|
1179
1190
|
files = {"video": video}
|
|
@@ -1193,7 +1204,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1193
1204
|
allow_sending_without_reply: Optional[bool] = None,
|
|
1194
1205
|
reply_markup: Optional[Union[InlineKeyboardMarkup, ReplyKeyboardMarkup]] = None,
|
|
1195
1206
|
):
|
|
1196
|
-
if type(video)
|
|
1207
|
+
if type(video) is str:
|
|
1197
1208
|
if video.startswith("http://") or video.startswith("https://"):
|
|
1198
1209
|
video_obj = Video(
|
|
1199
1210
|
chat_id=chat_id,
|
|
@@ -1208,7 +1219,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1208
1219
|
)
|
|
1209
1220
|
|
|
1210
1221
|
url = self.tg_base_url + "sendVideo"
|
|
1211
|
-
data = video_obj.
|
|
1222
|
+
data = video_obj.model_dump(exclude_none=True)
|
|
1212
1223
|
r = await self._perform_async_request(url, data)
|
|
1213
1224
|
return r
|
|
1214
1225
|
|
|
@@ -1230,7 +1241,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1230
1241
|
)
|
|
1231
1242
|
|
|
1232
1243
|
url = self.tg_base_url + "sendVideo"
|
|
1233
|
-
data = video_obj.
|
|
1244
|
+
data = video_obj.model_dump(exclude_none=True)
|
|
1234
1245
|
if "reply_markup" in data.keys():
|
|
1235
1246
|
data["reply_markup"] = json.dumps(data["reply_markup"])
|
|
1236
1247
|
files = {video: content}
|
|
@@ -1252,7 +1263,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1252
1263
|
)
|
|
1253
1264
|
|
|
1254
1265
|
url = self.tg_base_url + "sendVideo"
|
|
1255
|
-
data = video_obj.
|
|
1266
|
+
data = video_obj.model_dump(exclude_none=True)
|
|
1256
1267
|
r = await self._perform_async_request(url, data)
|
|
1257
1268
|
return r
|
|
1258
1269
|
|
|
@@ -1269,7 +1280,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1269
1280
|
)
|
|
1270
1281
|
|
|
1271
1282
|
url = self.tg_base_url + "sendVideo"
|
|
1272
|
-
data = video_obj.
|
|
1283
|
+
data = video_obj.model_dump(exclude_none=True)
|
|
1273
1284
|
if "reply_markup" in data.keys():
|
|
1274
1285
|
data["reply_markup"] = json.dumps(data["reply_markup"])
|
|
1275
1286
|
files = {"video": video}
|
|
@@ -1292,7 +1303,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1292
1303
|
files = {}
|
|
1293
1304
|
document_str = None
|
|
1294
1305
|
|
|
1295
|
-
if type(document)
|
|
1306
|
+
if type(document) is str:
|
|
1296
1307
|
if not (document.startswith("http://") or document.startswith("https://")):
|
|
1297
1308
|
ends = [".pdf", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx"]
|
|
1298
1309
|
for end in ends:
|
|
@@ -1321,7 +1332,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1321
1332
|
)
|
|
1322
1333
|
|
|
1323
1334
|
url = self.tg_base_url + "sendDocument"
|
|
1324
|
-
data = document_obj.
|
|
1335
|
+
data = document_obj.model_dump(exclude_none=True)
|
|
1325
1336
|
if "reply_markup" in data.keys():
|
|
1326
1337
|
data["reply_markup"] = json.dumps(data["reply_markup"])
|
|
1327
1338
|
|
|
@@ -1348,7 +1359,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1348
1359
|
files = {}
|
|
1349
1360
|
document_str = None
|
|
1350
1361
|
|
|
1351
|
-
if type(document)
|
|
1362
|
+
if type(document) is str:
|
|
1352
1363
|
if not (document.startswith("http://") or document.startswith("https://")):
|
|
1353
1364
|
ends = [".pdf", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx"]
|
|
1354
1365
|
for end in ends:
|
|
@@ -1377,7 +1388,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1377
1388
|
)
|
|
1378
1389
|
|
|
1379
1390
|
url = self.tg_base_url + "sendDocument"
|
|
1380
|
-
data = document_obj.
|
|
1391
|
+
data = document_obj.model_dump(exclude_none=True)
|
|
1381
1392
|
|
|
1382
1393
|
if "reply_markup" in data.keys():
|
|
1383
1394
|
data["reply_markup"] = json.dumps(data["reply_markup"])
|
|
@@ -1442,14 +1453,14 @@ class TelegramHelper(BaseHelper):
|
|
|
1442
1453
|
files = {}
|
|
1443
1454
|
photos_list = []
|
|
1444
1455
|
|
|
1445
|
-
if type(photos[-1])
|
|
1456
|
+
if type(photos[-1]) is str:
|
|
1446
1457
|
if photos[-1].startswith("http://") or photos[-1].startswith("https://"):
|
|
1447
1458
|
for photo in photos:
|
|
1448
1459
|
photos_list.append(InputMediaPhoto(media=photo))
|
|
1449
1460
|
|
|
1450
1461
|
media_group = MediaGroup(chat_id=chat_id, media=photos_list)
|
|
1451
1462
|
url = self.tg_base_url + "sendMediaGroup"
|
|
1452
|
-
data = media_group.
|
|
1463
|
+
data = media_group.model_dump(exclude_none=True)
|
|
1453
1464
|
r = self._perform_sync_request(url, data)
|
|
1454
1465
|
return r
|
|
1455
1466
|
|
|
@@ -1463,7 +1474,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1463
1474
|
|
|
1464
1475
|
media_group = MediaGroup(chat_id=chat_id, media=photos_list)
|
|
1465
1476
|
url = self.tg_base_url + "sendMediaGroup"
|
|
1466
|
-
data = media_group.
|
|
1477
|
+
data = media_group.model_dump(exclude_none=True)
|
|
1467
1478
|
data["media"] = json.dumps(data["media"])
|
|
1468
1479
|
r = self._perform_sync_request(
|
|
1469
1480
|
url, data, use_json=False, files=files
|
|
@@ -1475,7 +1486,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1475
1486
|
|
|
1476
1487
|
media_group = MediaGroup(chat_id=chat_id, media=photos_list)
|
|
1477
1488
|
url = self.tg_base_url + "sendMediaGroup"
|
|
1478
|
-
data = media_group.
|
|
1489
|
+
data = media_group.model_dump(exclude_none=True)
|
|
1479
1490
|
r = self._perform_sync_request(url, data)
|
|
1480
1491
|
return r
|
|
1481
1492
|
|
|
@@ -1485,7 +1496,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1485
1496
|
|
|
1486
1497
|
media_group = MediaGroup(chat_id=chat_id, media=photos_list)
|
|
1487
1498
|
url = self.tg_base_url + "sendMediaGroup"
|
|
1488
|
-
data = media_group.
|
|
1499
|
+
data = media_group.model_dump(exclude_none=True)
|
|
1489
1500
|
data["media"] = json.dumps(data["media"])
|
|
1490
1501
|
r = self._perform_sync_request(url, data, use_json=False, files=files)
|
|
1491
1502
|
return r
|
|
@@ -1496,14 +1507,14 @@ class TelegramHelper(BaseHelper):
|
|
|
1496
1507
|
files = {}
|
|
1497
1508
|
photos_list = []
|
|
1498
1509
|
|
|
1499
|
-
if type(photos[-1])
|
|
1510
|
+
if type(photos[-1]) is str:
|
|
1500
1511
|
if photos[-1].startswith("http://") or photos[-1].startswith("https://"):
|
|
1501
1512
|
for photo in photos:
|
|
1502
1513
|
photos_list.append(InputMediaPhoto(media=photo))
|
|
1503
1514
|
|
|
1504
1515
|
media_group = MediaGroup(chat_id=chat_id, media=photos_list)
|
|
1505
1516
|
url = self.tg_base_url + "sendMediaGroup"
|
|
1506
|
-
data = media_group.
|
|
1517
|
+
data = media_group.model_dump(exclude_none=True)
|
|
1507
1518
|
r = await self._perform_async_request(url, data)
|
|
1508
1519
|
return r
|
|
1509
1520
|
|
|
@@ -1518,7 +1529,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1518
1529
|
|
|
1519
1530
|
media_group = MediaGroup(chat_id=chat_id, media=photos_list)
|
|
1520
1531
|
url = self.tg_base_url + "sendMediaGroup"
|
|
1521
|
-
data = media_group.
|
|
1532
|
+
data = media_group.model_dump(exclude_none=True)
|
|
1522
1533
|
data["media"] = json.dumps(data["media"])
|
|
1523
1534
|
r = await self._perform_async_request(
|
|
1524
1535
|
url, data, use_json=False, files=files
|
|
@@ -1530,7 +1541,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1530
1541
|
|
|
1531
1542
|
media_group = MediaGroup(chat_id=chat_id, media=photos_list)
|
|
1532
1543
|
url = self.tg_base_url + "sendMediaGroup"
|
|
1533
|
-
data = media_group.
|
|
1544
|
+
data = media_group.model_dump(exclude_none=True)
|
|
1534
1545
|
r = await self._perform_async_request(url, data)
|
|
1535
1546
|
return r
|
|
1536
1547
|
|
|
@@ -1540,7 +1551,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1540
1551
|
|
|
1541
1552
|
media_group = MediaGroup(chat_id=chat_id, media=photos_list)
|
|
1542
1553
|
url = self.tg_base_url + "sendMediaGroup"
|
|
1543
|
-
data = media_group.
|
|
1554
|
+
data = media_group.model_dump(exclude_none=True)
|
|
1544
1555
|
data["media"] = json.dumps(data["media"])
|
|
1545
1556
|
r = await self._perform_async_request(url, data, use_json=False, files=files)
|
|
1546
1557
|
return r
|
|
@@ -1565,7 +1576,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1565
1576
|
files = {}
|
|
1566
1577
|
animation_str = None
|
|
1567
1578
|
|
|
1568
|
-
if type(animation)
|
|
1579
|
+
if type(animation) is str:
|
|
1569
1580
|
if not (
|
|
1570
1581
|
animation.startswith("http://") or animation.startswith("https://")
|
|
1571
1582
|
):
|
|
@@ -1600,7 +1611,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1600
1611
|
)
|
|
1601
1612
|
|
|
1602
1613
|
url = self.tg_base_url + "sendAnimation"
|
|
1603
|
-
data = animation_obj.
|
|
1614
|
+
data = animation_obj.model_dump(exclude_none=True)
|
|
1604
1615
|
if "reply_markup" in data.keys():
|
|
1605
1616
|
data["reply_markup"] = json.dumps(data["reply_markup"])
|
|
1606
1617
|
|
|
@@ -1631,7 +1642,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1631
1642
|
files = {}
|
|
1632
1643
|
animation_str = None
|
|
1633
1644
|
|
|
1634
|
-
if type(animation)
|
|
1645
|
+
if type(animation) is str:
|
|
1635
1646
|
if not (
|
|
1636
1647
|
animation.startswith("http://") or animation.startswith("https://")
|
|
1637
1648
|
):
|
|
@@ -1666,7 +1677,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1666
1677
|
)
|
|
1667
1678
|
|
|
1668
1679
|
url = self.tg_base_url + "sendAnimation"
|
|
1669
|
-
data = animation_obj.
|
|
1680
|
+
data = animation_obj.model_dump(exclude_none=True)
|
|
1670
1681
|
if "reply_markup" in data.keys():
|
|
1671
1682
|
data["reply_markup"] = json.dumps(data["reply_markup"])
|
|
1672
1683
|
|
|
@@ -1699,7 +1710,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1699
1710
|
files = {}
|
|
1700
1711
|
audio_str = None
|
|
1701
1712
|
|
|
1702
|
-
if type(audio)
|
|
1713
|
+
if type(audio) is str:
|
|
1703
1714
|
if not (audio.startswith("http://") or audio.startswith("https://")):
|
|
1704
1715
|
ends = [".mp3"]
|
|
1705
1716
|
for end in ends:
|
|
@@ -1732,7 +1743,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1732
1743
|
)
|
|
1733
1744
|
|
|
1734
1745
|
url = self.tg_base_url + "sendAudio"
|
|
1735
|
-
data = audio_obj.
|
|
1746
|
+
data = audio_obj.model_dump(exclude_none=True)
|
|
1736
1747
|
if "reply_markup" in data.keys():
|
|
1737
1748
|
data["reply_markup"] = json.dumps(data["reply_markup"])
|
|
1738
1749
|
|
|
@@ -1766,7 +1777,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1766
1777
|
)
|
|
1767
1778
|
|
|
1768
1779
|
url = self.tg_base_url + "sendSticker"
|
|
1769
|
-
data = sticker_obj.
|
|
1780
|
+
data = sticker_obj.model_dump(exclude_none=True)
|
|
1770
1781
|
if "reply_markup" in data.keys():
|
|
1771
1782
|
data["reply_markup"] = json.dumps(data["reply_markup"])
|
|
1772
1783
|
|
|
@@ -1794,7 +1805,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1794
1805
|
)
|
|
1795
1806
|
|
|
1796
1807
|
url = self.tg_base_url + "sendSticker"
|
|
1797
|
-
data = sticker_obj.
|
|
1808
|
+
data = sticker_obj.model_dump(exclude_none=True)
|
|
1798
1809
|
if "reply_markup" in data.keys():
|
|
1799
1810
|
data["reply_markup"] = json.dumps(data["reply_markup"])
|
|
1800
1811
|
|
|
@@ -1827,7 +1838,7 @@ class TelegramHelper(BaseHelper):
|
|
|
1827
1838
|
|
|
1828
1839
|
set_my_commands = SetMyCommands(commands=commands_list)
|
|
1829
1840
|
|
|
1830
|
-
r = self._perform_sync_request(url, set_my_commands.
|
|
1841
|
+
r = self._perform_sync_request(url, set_my_commands.model_dump())
|
|
1831
1842
|
return r
|
|
1832
1843
|
|
|
1833
1844
|
async def async_set_my_commands(self, commands: List[Tuple[str, str]]):
|
|
@@ -1838,5 +1849,5 @@ class TelegramHelper(BaseHelper):
|
|
|
1838
1849
|
|
|
1839
1850
|
set_my_commands = SetMyCommands(commands=commands_list)
|
|
1840
1851
|
|
|
1841
|
-
r = await self._perform_async_request(url, set_my_commands.
|
|
1852
|
+
r = await self._perform_async_request(url, set_my_commands.model_dump())
|
|
1842
1853
|
return r
|