mirror of
https://github.com/Mayuri-Chan/pyrofork.git
synced 2025-12-29 12:04:51 +00:00
Pyrofork: Add business_connection_id parameter to send_{animation,audio,chat_action,contact,dice,document,game,location,media_group,message,photo,poll,sticker,venue,video,video_note,voice,web_page}
Signed-off-by: wulan17 <wulan17@nusantararom.org>
This commit is contained in:
parent
48fed9347a
commit
7ddd53f61b
18 changed files with 544 additions and 289 deletions
|
|
@ -31,6 +31,7 @@ class SendGame:
|
|||
game_short_name: str,
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
business_connection_id: str = None,
|
||||
reply_to_message_id: int = None,
|
||||
protect_content: bool = None,
|
||||
reply_markup: Union[
|
||||
|
|
@ -62,6 +63,10 @@ class SendGame:
|
|||
Unique identifier of a message thread to which the message belongs.
|
||||
for supergroups only
|
||||
|
||||
business_connection_id (``str``, *optional*):
|
||||
Business connection identifier.
|
||||
for business bots only.
|
||||
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
|
|
@ -87,28 +92,43 @@ class SendGame:
|
|||
message_thread_id=message_thread_id
|
||||
)
|
||||
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=raw.types.InputMediaGame(
|
||||
id=raw.types.InputGameShortName(
|
||||
bot_id=raw.types.InputUserSelf(),
|
||||
short_name=game_short_name
|
||||
),
|
||||
rpc = raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=raw.types.InputMediaGame(
|
||||
id=raw.types.InputGameShortName(
|
||||
bot_id=raw.types.InputUserSelf(),
|
||||
short_name=game_short_name
|
||||
),
|
||||
message="",
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None
|
||||
)
|
||||
),
|
||||
message="",
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None
|
||||
)
|
||||
if business_connection_id is not None:
|
||||
r = await self.invoke(
|
||||
raw.functions.InvokeWithBusinessConnection(
|
||||
connection_id=business_connection_id,
|
||||
query=rpc
|
||||
)
|
||||
)
|
||||
else:
|
||||
r = await self.invoke(rpc)
|
||||
|
||||
for i in r.updates:
|
||||
if isinstance(i, (raw.types.UpdateNewMessage, raw.types.UpdateNewChannelMessage)):
|
||||
if isinstance(
|
||||
i,
|
||||
(
|
||||
raw.types.UpdateNewMessage,
|
||||
raw.types.UpdateNewChannelMessage,
|
||||
raw.types.UpdateBotNewBusinessMessage
|
||||
)
|
||||
):
|
||||
return await types.Message._parse(
|
||||
self, i.message,
|
||||
{i.id: i for i in r.users},
|
||||
{i.id: i for i in r.chats}
|
||||
{i.id: i for i in r.chats},
|
||||
business_connection_id=business_connection_id
|
||||
)
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ class SendAnimation:
|
|||
file_name: str = None,
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
business_connection_id: str = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
reply_to_chat_id: Union[int, str] = None,
|
||||
|
|
@ -126,6 +127,10 @@ class SendAnimation:
|
|||
Unique identifier for the target message thread (topic) of the forum.
|
||||
for forum supergroups only.
|
||||
|
||||
business_connection_id (``str``, *optional*):
|
||||
Unique identifier for the target business connection.
|
||||
for business bots only.
|
||||
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
|
|
@ -265,31 +270,40 @@ class SendAnimation:
|
|||
|
||||
while True:
|
||||
try:
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
**await utils.parse_text_entities(self, caption, parse_mode, caption_entities)
|
||||
)
|
||||
rpc = raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
**await utils.parse_text_entities(self, caption, parse_mode, caption_entities)
|
||||
)
|
||||
if business_connection_id is not None:
|
||||
r = await self.invoke(
|
||||
raw.functions.InvokeWithBusinessConnection(
|
||||
connection_id=business_connection_id,
|
||||
query=rpc
|
||||
)
|
||||
)
|
||||
else:
|
||||
r = await self.invoke(rpc)
|
||||
except FilePartMissing as e:
|
||||
await self.save_file(animation, file_id=file.id, file_part=e.value)
|
||||
else:
|
||||
for i in r.updates:
|
||||
if isinstance(i, (raw.types.UpdateNewMessage,
|
||||
raw.types.UpdateNewChannelMessage,
|
||||
raw.types.UpdateNewScheduledMessage)):
|
||||
raw.types.UpdateNewScheduledMessage,
|
||||
raw.types.UpdateBotNewBusinessMessage)):
|
||||
message = await types.Message._parse(
|
||||
self, i.message,
|
||||
{i.id: i for i in r.users},
|
||||
{i.id: i for i in r.chats},
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage)
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage),
|
||||
business_connection_id=business_connection_id
|
||||
)
|
||||
|
||||
if unsave:
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ class SendAudio:
|
|||
file_name: str = None,
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
business_connection_id: str = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
reply_to_chat_id: Union[int, str] = None,
|
||||
|
|
@ -119,6 +120,10 @@ class SendAudio:
|
|||
Unique identifier for the target message thread (topic) of the forum.
|
||||
for forum supergroups only.
|
||||
|
||||
business_connection_id (``str``, *optional*):
|
||||
Business connection identifier.
|
||||
for business bots only.
|
||||
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
|
|
@ -251,31 +256,40 @@ class SendAudio:
|
|||
|
||||
while True:
|
||||
try:
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
**await utils.parse_text_entities(self, caption, parse_mode, caption_entities)
|
||||
)
|
||||
rpc = raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
**await utils.parse_text_entities(self, caption, parse_mode, caption_entities)
|
||||
)
|
||||
if business_connection_id is not None:
|
||||
r = await self.invoke(
|
||||
raw.functions.InvokeWithBusinessConnection(
|
||||
connection_id=business_connection_id,
|
||||
query=rpc
|
||||
)
|
||||
)
|
||||
else:
|
||||
r = await self.invoke(rpc)
|
||||
except FilePartMissing as e:
|
||||
await self.save_file(audio, file_id=file.id, file_part=e.value)
|
||||
else:
|
||||
for i in r.updates:
|
||||
if isinstance(i, (raw.types.UpdateNewMessage,
|
||||
raw.types.UpdateNewChannelMessage,
|
||||
raw.types.UpdateNewScheduledMessage)):
|
||||
raw.types.UpdateNewScheduledMessage,
|
||||
raw.types.UpdateBotNewBusinessMessage)):
|
||||
return await types.Message._parse(
|
||||
self, i.message,
|
||||
{i.id: i for i in r.users},
|
||||
{i.id: i for i in r.chats},
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage)
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage),
|
||||
business_connection_id=business_connection_id
|
||||
)
|
||||
except StopTransmission:
|
||||
return None
|
||||
|
|
|
|||
|
|
@ -28,7 +28,8 @@ class SendChatAction:
|
|||
self: "pyrogram.Client",
|
||||
chat_id: Union[int, str],
|
||||
action: "enums.ChatAction",
|
||||
message_thread_id: int = None
|
||||
message_thread_id: int = None,
|
||||
business_connection_id: str = None
|
||||
) -> bool:
|
||||
"""Tell the other party that something is happening on your side.
|
||||
|
||||
|
|
@ -48,6 +49,10 @@ class SendChatAction:
|
|||
Unique identifier for the target message thread (topic) of the forum.
|
||||
for forum supergroups only.
|
||||
|
||||
business_connection_id (``str``, *optional*):
|
||||
Business connection identifier.
|
||||
for business bots only.
|
||||
|
||||
Returns:
|
||||
``bool``: On success, True is returned.
|
||||
|
||||
|
|
@ -78,11 +83,16 @@ class SendChatAction:
|
|||
action = action.value(progress=0)
|
||||
else:
|
||||
action = action.value()
|
||||
|
||||
return await self.invoke(
|
||||
raw.functions.messages.SetTyping(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
action=action,
|
||||
top_msg_id=message_thread_id
|
||||
)
|
||||
rpc = raw.functions.messages.SetTyping(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
action=action,
|
||||
top_msg_id=message_thread_id
|
||||
)
|
||||
if business_connection_id:
|
||||
return await self.invoke(
|
||||
raw.functions.InvokeWithBusinessConnection(
|
||||
connection_id=business_connection_id,
|
||||
query=rpc
|
||||
)
|
||||
)
|
||||
return await self.invoke(rpc)
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ class SendContact:
|
|||
vcard: str = None,
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
business_connection_id: str = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_chat_id: Union[int, str] = None,
|
||||
quote_text: str = None,
|
||||
|
|
@ -80,6 +81,10 @@ class SendContact:
|
|||
Unique identifier for the target message thread (topic) of the forum.
|
||||
for forum supergroups only.
|
||||
|
||||
business_connection_id (``str``, *optional*):
|
||||
Business connection identifier.
|
||||
for business bots only.
|
||||
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
|
|
@ -131,32 +136,41 @@ class SendContact:
|
|||
parse_mode=parse_mode
|
||||
)
|
||||
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=raw.types.InputMediaContact(
|
||||
phone_number=phone_number,
|
||||
first_name=first_name,
|
||||
last_name=last_name or "",
|
||||
vcard=vcard or ""
|
||||
),
|
||||
message="",
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None
|
||||
)
|
||||
rpc = raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=raw.types.InputMediaContact(
|
||||
phone_number=phone_number,
|
||||
first_name=first_name,
|
||||
last_name=last_name or "",
|
||||
vcard=vcard or ""
|
||||
),
|
||||
message="",
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None
|
||||
)
|
||||
if business_connection_id is not None:
|
||||
r = await self.invoke(
|
||||
raw.functions.InvokeWithBusinessConnection(
|
||||
connection_id=business_connection_id,
|
||||
query=rpc
|
||||
)
|
||||
)
|
||||
else:
|
||||
r = await self.invoke(rpc)
|
||||
|
||||
for i in r.updates:
|
||||
if isinstance(i, (raw.types.UpdateNewMessage,
|
||||
raw.types.UpdateNewChannelMessage,
|
||||
raw.types.UpdateNewScheduledMessage)):
|
||||
raw.types.UpdateNewScheduledMessage,
|
||||
raw.types.UpdateBotNewBusinessMessage)):
|
||||
return await types.Message._parse(
|
||||
self, i.message,
|
||||
{i.id: i for i in r.users},
|
||||
{i.id: i for i in r.chats},
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage)
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage),
|
||||
business_connection_id=business_connection_id
|
||||
)
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ class SendDice:
|
|||
emoji: str = "🎲",
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
business_connection_id: str = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
reply_to_chat_id: Union[int, str] = None,
|
||||
|
|
@ -73,6 +74,10 @@ class SendDice:
|
|||
Unique identifier for the target message thread (topic) of the forum.
|
||||
for forum supergroups only.
|
||||
|
||||
business_connection_id (``str``, *optional*):
|
||||
Business connection identifier.
|
||||
for business bots only.
|
||||
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
|
|
@ -135,27 +140,36 @@ class SendDice:
|
|||
parse_mode=parse_mode
|
||||
)
|
||||
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=raw.types.InputMediaDice(emoticon=emoji),
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
message=""
|
||||
)
|
||||
rpc = raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=raw.types.InputMediaDice(emoticon=emoji),
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
message=""
|
||||
)
|
||||
if business_connection_id is not None:
|
||||
r = await self.invoke(
|
||||
raw.functions.InvokeWithBusinessConnection(
|
||||
connection_id=business_connection_id,
|
||||
query=rpc
|
||||
)
|
||||
)
|
||||
else:
|
||||
r = await self.invoke(rpc)
|
||||
|
||||
for i in r.updates:
|
||||
if isinstance(i, (raw.types.UpdateNewMessage,
|
||||
raw.types.UpdateNewChannelMessage,
|
||||
raw.types.UpdateNewScheduledMessage)):
|
||||
raw.types.UpdateNewScheduledMessage,
|
||||
raw.types.UpdateBotNewBusinessMessage)):
|
||||
return await types.Message._parse(
|
||||
self, i.message,
|
||||
{i.id: i for i in r.users},
|
||||
{i.id: i for i in r.chats},
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage)
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage),
|
||||
business_connection_id=business_connection_id
|
||||
)
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ class SendDocument:
|
|||
force_document: bool = None,
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
business_connection_id: str = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
reply_to_chat_id: Union[int, str] = None,
|
||||
|
|
@ -111,6 +112,10 @@ class SendDocument:
|
|||
Unique identifier for the target message thread (topic) of the forum.
|
||||
for forum supergroups only.
|
||||
|
||||
business_connection_id (``str``, *optional*):
|
||||
Business connection identifier.
|
||||
for business bots only.
|
||||
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
|
|
@ -229,31 +234,40 @@ class SendDocument:
|
|||
|
||||
while True:
|
||||
try:
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
**await utils.parse_text_entities(self, caption, parse_mode, caption_entities)
|
||||
)
|
||||
rpc = raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
**await utils.parse_text_entities(self, caption, parse_mode, caption_entities)
|
||||
)
|
||||
if business_connection_id is not None:
|
||||
r = await self.invoke(
|
||||
raw.functions.InvokeWithBusinessConnection(
|
||||
connection_id=business_connection_id,
|
||||
query=rpc
|
||||
)
|
||||
)
|
||||
else:
|
||||
r = await self.invoke(rpc)
|
||||
except FilePartMissing as e:
|
||||
await self.save_file(document, file_id=file.id, file_part=e.value)
|
||||
else:
|
||||
for i in r.updates:
|
||||
if isinstance(i, (raw.types.UpdateNewMessage,
|
||||
raw.types.UpdateNewChannelMessage,
|
||||
raw.types.UpdateNewScheduledMessage)):
|
||||
raw.types.UpdateNewScheduledMessage,
|
||||
raw.types.UpdateBotNewBusinessMessage)):
|
||||
return await types.Message._parse(
|
||||
self, i.message,
|
||||
{i.id: i for i in r.users},
|
||||
{i.id: i for i in r.chats},
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage)
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage),
|
||||
business_connection_id=business_connection_id
|
||||
)
|
||||
except StopTransmission:
|
||||
return None
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ class SendLocation:
|
|||
longitude: float,
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
business_connection_id: str = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_chat_id: Union[int, str] = None,
|
||||
quote_text: str = None,
|
||||
|
|
@ -72,6 +73,10 @@ class SendLocation:
|
|||
Unique identifier for the target message thread (topic) of the forum.
|
||||
for forum supergroups only.
|
||||
|
||||
business_connection_id (``str``, *optional*):
|
||||
Business connection identifier.
|
||||
for business bots only.
|
||||
|
||||
reply_to_chat_id (``int`` | ``str``, *optional*):
|
||||
Unique identifier for the origin chat.
|
||||
for reply to message from another chat.
|
||||
|
|
@ -123,32 +128,41 @@ class SendLocation:
|
|||
parse_mode=parse_mode
|
||||
)
|
||||
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=raw.types.InputMediaGeoPoint(
|
||||
geo_point=raw.types.InputGeoPoint(
|
||||
lat=latitude,
|
||||
long=longitude
|
||||
)
|
||||
),
|
||||
message="",
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None
|
||||
)
|
||||
rpc = raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=raw.types.InputMediaGeoPoint(
|
||||
geo_point=raw.types.InputGeoPoint(
|
||||
lat=latitude,
|
||||
long=longitude
|
||||
)
|
||||
),
|
||||
message="",
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None
|
||||
)
|
||||
if business_connection_id is not None:
|
||||
r = await self.invoke(
|
||||
raw.functions.InvokeWithBusinessConnection(
|
||||
connection_id=business_connection_id,
|
||||
query=rpc
|
||||
)
|
||||
)
|
||||
else:
|
||||
r = await self.invoke(rpc)
|
||||
|
||||
for i in r.updates:
|
||||
if isinstance(i, (raw.types.UpdateNewMessage,
|
||||
raw.types.UpdateNewChannelMessage,
|
||||
raw.types.UpdateNewScheduledMessage)):
|
||||
raw.types.UpdateNewScheduledMessage,
|
||||
raw.types.UpdateBotNewBusinessMessage)):
|
||||
return await types.Message._parse(
|
||||
self, i.message,
|
||||
{i.id: i for i in r.users},
|
||||
{i.id: i for i in r.chats},
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage)
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage),
|
||||
business_connection_id=business_connection_id
|
||||
)
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ class SendMediaGroup:
|
|||
]],
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
business_connection_id: str = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
reply_to_chat_id: Union[int, str] = None,
|
||||
|
|
@ -79,6 +80,10 @@ class SendMediaGroup:
|
|||
Unique identifier for the target message thread (topic) of the forum.
|
||||
for forum supergroups only.
|
||||
|
||||
business_connection_id (``str``, *optional*):
|
||||
Business connection identifier.
|
||||
for business bots only.
|
||||
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
|
|
@ -454,28 +459,38 @@ class SendMediaGroup:
|
|||
)
|
||||
)
|
||||
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMultiMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
multi_media=multi_media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content
|
||||
),
|
||||
sleep_threshold=60
|
||||
)
|
||||
|
||||
rpc = raw.functions.messages.SendMultiMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
multi_media=multi_media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content
|
||||
),
|
||||
|
||||
if business_connection_id is not None:
|
||||
r = await self.invoke(
|
||||
raw.functions.InvokeWithBusinessConnection(
|
||||
connection_id=business_connection_id,
|
||||
query=rpc
|
||||
),
|
||||
sleep_threshold=60
|
||||
)
|
||||
else:
|
||||
r = await self.invoke(rpc, sleep_threshold=60)
|
||||
|
||||
return await utils.parse_messages(
|
||||
self,
|
||||
raw.types.messages.Messages(
|
||||
messages=[m.message for m in filter(
|
||||
lambda u: isinstance(u, (raw.types.UpdateNewMessage,
|
||||
raw.types.UpdateNewChannelMessage,
|
||||
raw.types.UpdateNewScheduledMessage)),
|
||||
raw.types.UpdateNewScheduledMessage,
|
||||
raw.types.UpdateBotNewBusinessMessage)),
|
||||
r.updates
|
||||
)],
|
||||
users=r.users,
|
||||
chats=r.chats
|
||||
)
|
||||
),
|
||||
business_connection_id=business_connection_id
|
||||
)
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ class SendMessage:
|
|||
disable_web_page_preview: bool = None,
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
business_connection_id: str = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
reply_to_chat_id: int = None,
|
||||
|
|
@ -82,6 +83,10 @@ class SendMessage:
|
|||
Unique identifier for the target message thread (topic) of the forum.
|
||||
for forum supergroups only.
|
||||
|
||||
business_connection_id (``str``, *optional*):
|
||||
Business connection identifier.
|
||||
for business bots only.
|
||||
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
|
|
@ -166,21 +171,28 @@ class SendMessage:
|
|||
parse_mode=parse_mode
|
||||
)
|
||||
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMessage(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
no_webpage=disable_web_page_preview or None,
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
message=message,
|
||||
entities=entities,
|
||||
noforwards=protect_content,
|
||||
invert_media=invert_media
|
||||
)
|
||||
rpc = raw.functions.messages.SendMessage(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
no_webpage=disable_web_page_preview or None,
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
message=message,
|
||||
entities=entities,
|
||||
noforwards=protect_content,
|
||||
invert_media=invert_media
|
||||
)
|
||||
if business_connection_id is not None:
|
||||
r = await self.invoke(
|
||||
raw.functions.InvokeWithBusinessConnection(
|
||||
connection_id=business_connection_id,
|
||||
query=rpc
|
||||
)
|
||||
)
|
||||
else:
|
||||
r = await self.invoke(rpc)
|
||||
|
||||
if isinstance(r, raw.types.UpdateShortSentMessage):
|
||||
peer = await self.resolve_peer(chat_id)
|
||||
|
|
@ -212,10 +224,12 @@ class SendMessage:
|
|||
for i in r.updates:
|
||||
if isinstance(i, (raw.types.UpdateNewMessage,
|
||||
raw.types.UpdateNewChannelMessage,
|
||||
raw.types.UpdateNewScheduledMessage)):
|
||||
raw.types.UpdateNewScheduledMessage,
|
||||
raw.types.UpdateBotNewBusinessMessage)):
|
||||
return await types.Message._parse(
|
||||
self, i.message,
|
||||
{i.id: i for i in r.users},
|
||||
{i.id: i for i in r.chats},
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage)
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage),
|
||||
business_connection_id=business_connection_id
|
||||
)
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ class SendPhoto:
|
|||
ttl_seconds: int = None,
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
business_connection_id: str = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
reply_to_chat_id: Union[int, str] = None,
|
||||
|
|
@ -102,6 +103,10 @@ class SendPhoto:
|
|||
Unique identifier for the target message thread (topic) of the forum.
|
||||
for forum supergroups only.
|
||||
|
||||
business_connection_id (``str``, *optional*):
|
||||
Business connection identifier.
|
||||
for business bots only.
|
||||
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
|
|
@ -214,31 +219,40 @@ class SendPhoto:
|
|||
|
||||
while True:
|
||||
try:
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
**await utils.parse_text_entities(self, caption, parse_mode, caption_entities)
|
||||
)
|
||||
rpc = raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
**await utils.parse_text_entities(self, caption, parse_mode, caption_entities)
|
||||
)
|
||||
if business_connection_id is not None:
|
||||
r = await self.invoke(
|
||||
raw.functions.InvokeWithBusinessConnection(
|
||||
connection_id=business_connection_id,
|
||||
query=rpc
|
||||
)
|
||||
)
|
||||
else:
|
||||
r = await self.invoke(rpc)
|
||||
except FilePartMissing as e:
|
||||
await self.save_file(photo, file_id=file.id, file_part=e.value)
|
||||
else:
|
||||
for i in r.updates:
|
||||
if isinstance(i, (raw.types.UpdateNewMessage,
|
||||
raw.types.UpdateNewChannelMessage,
|
||||
raw.types.UpdateNewScheduledMessage)):
|
||||
raw.types.UpdateNewScheduledMessage,
|
||||
raw.types.UpdateBotNewBusinessMessage)):
|
||||
return await types.Message._parse(
|
||||
self, i.message,
|
||||
{i.id: i for i in r.users},
|
||||
{i.id: i for i in r.chats},
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage)
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage),
|
||||
business_connection_id=business_connection_id
|
||||
)
|
||||
except pyrogram.StopTransmission:
|
||||
return None
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ class SendPoll:
|
|||
disable_notification: bool = None,
|
||||
protect_content: bool = None,
|
||||
message_thread_id: int = None,
|
||||
business_connection_id: str = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_chat_id: Union[int, str] = None,
|
||||
quote_text: str = None,
|
||||
|
|
@ -125,6 +126,10 @@ class SendPoll:
|
|||
Unique identifier for the target message thread (topic) of the forum.
|
||||
for forum supergroups only.
|
||||
|
||||
business_connection_id (``str``, *optional*):
|
||||
Business connection identifier.
|
||||
for business bots only.
|
||||
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
|
|
@ -177,45 +182,54 @@ class SendPoll:
|
|||
self, explanation, explanation_parse_mode, explanation_entities
|
||||
)).values()
|
||||
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=raw.types.InputMediaPoll(
|
||||
poll=raw.types.Poll(
|
||||
id=self.rnd_id(),
|
||||
question=question,
|
||||
answers=[
|
||||
raw.types.PollAnswer(text=text, option=bytes([i]))
|
||||
for i, text in enumerate(options)
|
||||
],
|
||||
closed=is_closed,
|
||||
public_voters=not is_anonymous,
|
||||
multiple_choice=allows_multiple_answers,
|
||||
quiz=type == enums.PollType.QUIZ or False,
|
||||
close_period=open_period,
|
||||
close_date=utils.datetime_to_timestamp(close_date)
|
||||
),
|
||||
correct_answers=[bytes([correct_option_id])] if correct_option_id is not None else None,
|
||||
solution=solution,
|
||||
solution_entities=solution_entities or []
|
||||
rpc = raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=raw.types.InputMediaPoll(
|
||||
poll=raw.types.Poll(
|
||||
id=self.rnd_id(),
|
||||
question=question,
|
||||
answers=[
|
||||
raw.types.PollAnswer(text=text, option=bytes([i]))
|
||||
for i, text in enumerate(options)
|
||||
],
|
||||
closed=is_closed,
|
||||
public_voters=not is_anonymous,
|
||||
multiple_choice=allows_multiple_answers,
|
||||
quiz=type == enums.PollType.QUIZ or False,
|
||||
close_period=open_period,
|
||||
close_date=utils.datetime_to_timestamp(close_date)
|
||||
),
|
||||
message="",
|
||||
silent=disable_notification,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None
|
||||
)
|
||||
correct_answers=[bytes([correct_option_id])] if correct_option_id is not None else None,
|
||||
solution=solution,
|
||||
solution_entities=solution_entities or []
|
||||
),
|
||||
message="",
|
||||
silent=disable_notification,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None
|
||||
)
|
||||
if business_connection_id is not None:
|
||||
r = await self.invoke(
|
||||
raw.functions.InvokeWithBusinessConnection(
|
||||
connection_id=business_connection_id,
|
||||
query=rpc
|
||||
)
|
||||
)
|
||||
else:
|
||||
r = await self.invoke(rpc)
|
||||
|
||||
for i in r.updates:
|
||||
if isinstance(i, (raw.types.UpdateNewMessage,
|
||||
raw.types.UpdateNewChannelMessage,
|
||||
raw.types.UpdateNewScheduledMessage)):
|
||||
raw.types.UpdateNewScheduledMessage,
|
||||
raw.types.UpdateBotNewBusinessMessage)):
|
||||
return await types.Message._parse(
|
||||
self, i.message,
|
||||
{i.id: i for i in r.users},
|
||||
{i.id: i for i in r.chats},
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage)
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage),
|
||||
business_connection_id=business_connection_id
|
||||
)
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ class SendSticker:
|
|||
sticker: Union[str, BinaryIO],
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
business_connection_id: str = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
reply_to_chat_id: Union[int, str] = None,
|
||||
|
|
@ -82,6 +83,10 @@ class SendSticker:
|
|||
Unique identifier for the target message thread (topic) of the forum.
|
||||
for forum supergroups only.
|
||||
|
||||
business_connection_id (``str``, *optional*):
|
||||
Business connection identifier.
|
||||
for business bots only.
|
||||
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
|
|
@ -195,31 +200,40 @@ class SendSticker:
|
|||
|
||||
while True:
|
||||
try:
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
message=""
|
||||
)
|
||||
rpc = raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
message=""
|
||||
)
|
||||
if business_connection_id is not None:
|
||||
r = await self.invoke(
|
||||
raw.functions.InvokeWithBusinessConnection(
|
||||
connection_id=business_connection_id,
|
||||
query=rpc
|
||||
)
|
||||
)
|
||||
else:
|
||||
r = await self.invoke(rpc)
|
||||
except FilePartMissing as e:
|
||||
await self.save_file(sticker, file_id=file.id, file_part=e.value)
|
||||
else:
|
||||
for i in r.updates:
|
||||
if isinstance(i, (raw.types.UpdateNewMessage,
|
||||
raw.types.UpdateNewChannelMessage,
|
||||
raw.types.UpdateNewScheduledMessage)):
|
||||
raw.types.UpdateNewScheduledMessage,
|
||||
raw.types.UpdateBotNewBusinessMessage)):
|
||||
return await types.Message._parse(
|
||||
self, i.message,
|
||||
{i.id: i for i in r.users},
|
||||
{i.id: i for i in r.chats},
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage)
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage),
|
||||
business_connection_id=business_connection_id
|
||||
)
|
||||
except StopTransmission:
|
||||
return None
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ class SendVenue:
|
|||
foursquare_type: str = "",
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
business_connection_id: str = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_chat_id: Union[int, str] = None,
|
||||
quote_text: str = None,
|
||||
|
|
@ -89,6 +90,10 @@ class SendVenue:
|
|||
Unique identifier for the target message thread (topic) of the forum.
|
||||
for forum supergroups only.
|
||||
|
||||
business_connection_id (``str``, *optional*):
|
||||
Business connection identifier.
|
||||
for business bots only.
|
||||
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message
|
||||
|
||||
|
|
@ -142,37 +147,46 @@ class SendVenue:
|
|||
parse_mode=parse_mode
|
||||
)
|
||||
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=raw.types.InputMediaVenue(
|
||||
geo_point=raw.types.InputGeoPoint(
|
||||
lat=latitude,
|
||||
long=longitude
|
||||
),
|
||||
title=title,
|
||||
address=address,
|
||||
provider="",
|
||||
venue_id=foursquare_id,
|
||||
venue_type=foursquare_type
|
||||
rpc = raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=raw.types.InputMediaVenue(
|
||||
geo_point=raw.types.InputGeoPoint(
|
||||
lat=latitude,
|
||||
long=longitude
|
||||
),
|
||||
message="",
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None
|
||||
)
|
||||
title=title,
|
||||
address=address,
|
||||
provider="",
|
||||
venue_id=foursquare_id,
|
||||
venue_type=foursquare_type
|
||||
),
|
||||
message="",
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None
|
||||
)
|
||||
if business_connection_id is not None:
|
||||
r = await self.invoke(
|
||||
raw.functions.InvokeWithBusinessConnection(
|
||||
connection_id=business_connection_id,
|
||||
query=rpc
|
||||
)
|
||||
)
|
||||
else:
|
||||
r = await self.invoke(rpc)
|
||||
|
||||
for i in r.updates:
|
||||
if isinstance(i, (raw.types.UpdateNewMessage,
|
||||
raw.types.UpdateNewChannelMessage,
|
||||
raw.types.UpdateNewScheduledMessage)):
|
||||
raw.types.UpdateNewScheduledMessage,
|
||||
raw.types.UpdateBotNewBusinessMessage)):
|
||||
return await types.Message._parse(
|
||||
self, i.message,
|
||||
{i.id: i for i in r.users},
|
||||
{i.id: i for i in r.chats},
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage)
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage),
|
||||
business_connection_id=business_connection_id
|
||||
)
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ class SendVideo:
|
|||
supports_streaming: bool = True,
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
business_connection_id: str = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
reply_to_chat_id: Union[int, str] = None,
|
||||
|
|
@ -132,6 +133,10 @@ class SendVideo:
|
|||
Unique identifier for the target message thread (topic) of the forum.
|
||||
for forum supergroups only.
|
||||
|
||||
business_connection_id (``str``, *optional*):
|
||||
Business connection identifier.
|
||||
for business bots only.
|
||||
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
|
|
@ -271,31 +276,40 @@ class SendVideo:
|
|||
|
||||
while True:
|
||||
try:
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
**await utils.parse_text_entities(self, caption, parse_mode, caption_entities)
|
||||
)
|
||||
rpc = raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
**await utils.parse_text_entities(self, caption, parse_mode, caption_entities)
|
||||
)
|
||||
if business_connection_id is not None:
|
||||
r = await self.invoke(
|
||||
raw.functions.InvokeWithBusinessConnection(
|
||||
connection_id=business_connection_id,
|
||||
query=rpc
|
||||
)
|
||||
)
|
||||
else:
|
||||
r = await self.invoke(rpc)
|
||||
except FilePartMissing as e:
|
||||
await self.save_file(video, file_id=file.id, file_part=e.value)
|
||||
else:
|
||||
for i in r.updates:
|
||||
if isinstance(i, (raw.types.UpdateNewMessage,
|
||||
raw.types.UpdateNewChannelMessage,
|
||||
raw.types.UpdateNewScheduledMessage)):
|
||||
raw.types.UpdateNewScheduledMessage,
|
||||
raw.types.UpdateBotNewBusinessMessage)):
|
||||
return await types.Message._parse(
|
||||
self, i.message,
|
||||
{i.id: i for i in r.users},
|
||||
{i.id: i for i in r.chats},
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage)
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage),
|
||||
business_connection_id=business_connection_id
|
||||
)
|
||||
except StopTransmission:
|
||||
return None
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ class SendVideoNote:
|
|||
thumb: Union[str, BinaryIO] = None,
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
business_connection_id: str = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
reply_to_chat_id: Union[int, str] = None,
|
||||
|
|
@ -97,6 +98,10 @@ class SendVideoNote:
|
|||
Unique identifier for the target message thread (topic) of the forum.
|
||||
for forum supergroups only.
|
||||
|
||||
business_connection_id (``str``, *optional*):
|
||||
Business connection identifier.
|
||||
for business bots only.
|
||||
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
|
|
@ -229,31 +234,40 @@ class SendVideoNote:
|
|||
|
||||
while True:
|
||||
try:
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
message=""
|
||||
)
|
||||
rpc = raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
message=""
|
||||
)
|
||||
if business_connection_id is not None:
|
||||
r = await self.invoke(
|
||||
raw.functions.InvokeWithBusinessConnection(
|
||||
connection_id=business_connection_id,
|
||||
query=rpc
|
||||
)
|
||||
)
|
||||
else:
|
||||
r = await self.invoke(rpc)
|
||||
except FilePartMissing as e:
|
||||
await self.save_file(video_note, file_id=file.id, file_part=e.value)
|
||||
else:
|
||||
for i in r.updates:
|
||||
if isinstance(i, (raw.types.UpdateNewMessage,
|
||||
raw.types.UpdateNewChannelMessage,
|
||||
raw.types.UpdateNewScheduledMessage)):
|
||||
raw.types.UpdateNewScheduledMessage,
|
||||
raw.types.UpdateBotNewBusinessMessage)):
|
||||
return await types.Message._parse(
|
||||
self, i.message,
|
||||
{i.id: i for i in r.users},
|
||||
{i.id: i for i in r.chats},
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage)
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage),
|
||||
business_connection_id=business_connection_id
|
||||
)
|
||||
except StopTransmission:
|
||||
return None
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ class SendVoice:
|
|||
duration: int = 0,
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
business_connection_id: str = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
reply_to_chat_id: Union[int, str] = None,
|
||||
|
|
@ -97,6 +98,10 @@ class SendVoice:
|
|||
Unique identifier for the target message thread (topic) of the forum.
|
||||
for forum supergroups only.
|
||||
|
||||
business_connection_id (``str``, *optional*):
|
||||
Business connection identifier.
|
||||
for business bots only.
|
||||
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message
|
||||
|
||||
|
|
@ -216,31 +221,40 @@ class SendVoice:
|
|||
|
||||
while True:
|
||||
try:
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
**await utils.parse_text_entities(self, caption, parse_mode, caption_entities)
|
||||
)
|
||||
rpc = raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
media=media,
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
noforwards=protect_content,
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
**await utils.parse_text_entities(self, caption, parse_mode, caption_entities)
|
||||
)
|
||||
if business_connection_id is not None:
|
||||
r = await self.invoke(
|
||||
raw.functions.InvokeWithBusinessConnection(
|
||||
connection_id=business_connection_id,
|
||||
query=rpc
|
||||
)
|
||||
)
|
||||
else:
|
||||
r = await self.invoke(rpc)
|
||||
except FilePartMissing as e:
|
||||
await self.save_file(voice, file_id=file.id, file_part=e.value)
|
||||
else:
|
||||
for i in r.updates:
|
||||
if isinstance(i, (raw.types.UpdateNewMessage,
|
||||
raw.types.UpdateNewChannelMessage,
|
||||
raw.types.UpdateNewScheduledMessage)):
|
||||
raw.types.UpdateNewScheduledMessage,
|
||||
raw.types.UpdateBotNewBusinessMessage)):
|
||||
return await types.Message._parse(
|
||||
self, i.message,
|
||||
{i.id: i for i in r.users},
|
||||
{i.id: i for i in r.chats},
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage)
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage),
|
||||
business_connection_id=business_connection_id
|
||||
)
|
||||
except StopTransmission:
|
||||
return None
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ class SendWebPage:
|
|||
invert_media: bool = None,
|
||||
disable_notification: bool = None,
|
||||
message_thread_id: int = None,
|
||||
business_connection_id: str = None,
|
||||
reply_to_message_id: int = None,
|
||||
reply_to_story_id: int = None,
|
||||
reply_to_chat_id: Union[int, str] = None,
|
||||
|
|
@ -88,6 +89,10 @@ class SendWebPage:
|
|||
Unique identifier for the target message thread (topic) of the forum.
|
||||
for forum supergroups only.
|
||||
|
||||
business_connection_id (``str``, *optional*):
|
||||
Business connection identifier.
|
||||
for business bots only.
|
||||
|
||||
reply_to_message_id (``int``, *optional*):
|
||||
If the message is a reply, ID of the original message.
|
||||
|
||||
|
|
@ -146,21 +151,28 @@ class SendWebPage:
|
|||
force_large_media=large_media,
|
||||
force_small_media=not large_media
|
||||
)
|
||||
r = await self.invoke(
|
||||
raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
message=message,
|
||||
media=media,
|
||||
invert_media=invert_media,
|
||||
entities=entities,
|
||||
noforwards=protect_content
|
||||
)
|
||||
rpc = raw.functions.messages.SendMedia(
|
||||
peer=await self.resolve_peer(chat_id),
|
||||
silent=disable_notification or None,
|
||||
reply_to=reply_to,
|
||||
random_id=self.rnd_id(),
|
||||
schedule_date=utils.datetime_to_timestamp(schedule_date),
|
||||
reply_markup=await reply_markup.write(self) if reply_markup else None,
|
||||
message=message,
|
||||
media=media,
|
||||
invert_media=invert_media,
|
||||
entities=entities,
|
||||
noforwards=protect_content
|
||||
)
|
||||
if business_connection_id is not None:
|
||||
r = await self.invoke(
|
||||
raw.functions.InvokeWithBusinessConnection(
|
||||
connection_id=business_connection_id,
|
||||
query=rpc
|
||||
)
|
||||
)
|
||||
else:
|
||||
r = await self.invoke(rpc)
|
||||
|
||||
if isinstance(r, raw.types.UpdateShortSentMessage):
|
||||
peer = await self.resolve_peer(chat_id)
|
||||
|
|
@ -191,10 +203,12 @@ class SendWebPage:
|
|||
for i in r.updates:
|
||||
if isinstance(i, (raw.types.UpdateNewMessage,
|
||||
raw.types.UpdateNewChannelMessage,
|
||||
raw.types.UpdateNewScheduledMessage)):
|
||||
raw.types.UpdateNewScheduledMessage,
|
||||
raw.types.UpdateBotNewBusinessMessage)):
|
||||
return await types.Message._parse(
|
||||
self, i.message,
|
||||
{i.id: i for i in r.users},
|
||||
{i.id: i for i in r.chats},
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage)
|
||||
is_scheduled=isinstance(i, raw.types.UpdateNewScheduledMessage),
|
||||
business_connection_id=business_connection_id
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in a new issue