Skip to content

Commit

Permalink
Expose more raw API params in friendly methods (#3104)
Browse files Browse the repository at this point in the history
  • Loading branch information
New-dev0 committed Aug 5, 2021
1 parent ad55b94 commit e5599c1
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 12 deletions.
19 changes: 18 additions & 1 deletion telethon/client/messages.py
Original file line number Diff line number Diff line change
Expand Up @@ -608,6 +608,7 @@ async def send_message(
clear_draft: bool = False,
buttons: 'hints.MarkupLike' = None,
silent: bool = None,
background: bool = None,
supports_streaming: bool = False,
schedule: 'hints.DateLike' = None,
comment_to: 'typing.Union[int, types.Message]' = None
Expand Down Expand Up @@ -701,6 +702,9 @@ async def send_message(
channel or not. Defaults to `False`, which means it will
notify them. Set it to `True` to alter this behaviour.
background (`bool`, optional):
Whether the message should be send in background.
supports_streaming (`bool`, optional):
Whether the sent video supports streaming or not. Note that
Telegram only recognizes as streamable some formats like MP4,
Expand Down Expand Up @@ -788,7 +792,7 @@ async def callback(event):
buttons=buttons, clear_draft=clear_draft, silent=silent,
schedule=schedule, supports_streaming=supports_streaming,
formatting_entities=formatting_entities,
comment_to=comment_to
comment_to=comment_to, background=background
)

entity = await self.get_input_entity(entity)
Expand All @@ -811,6 +815,7 @@ async def callback(event):
message.media,
caption=message.message,
silent=silent,
background=background,
reply_to=reply_to,
buttons=markup,
formatting_entities=message.entities,
Expand All @@ -821,6 +826,7 @@ async def callback(event):
peer=entity,
message=message.message or '',
silent=silent,
background=background,
reply_to_msg_id=utils.get_message_id(reply_to),
reply_markup=markup,
entities=message.entities,
Expand All @@ -846,6 +852,7 @@ async def callback(event):
reply_to_msg_id=utils.get_message_id(reply_to),
clear_draft=clear_draft,
silent=silent,
background=background,
reply_markup=self.build_reply_markup(buttons),
schedule_date=schedule
)
Expand Down Expand Up @@ -874,6 +881,8 @@ async def forward_messages(
messages: 'typing.Union[hints.MessageIDLike, typing.Sequence[hints.MessageIDLike]]',
from_peer: 'hints.EntityLike' = None,
*,
background: bool = None,
with_my_score: bool = None,
silent: bool = None,
as_album: bool = None,
schedule: 'hints.DateLike' = None
Expand Down Expand Up @@ -906,6 +915,12 @@ async def forward_messages(
the person has the chat muted). Set it to `True` to alter
this behaviour.
background (`bool`, optional):
Whether the message should be forwarded in background.
with_my_score (`bool`, optional):
Whether forwarded should contain your game score.
as_album (`bool`, optional):
This flag no longer has any effect.
Expand Down Expand Up @@ -980,6 +995,8 @@ def get_key(m):
id=chunk,
to_peer=entity,
silent=silent,
background=background,
with_my_score=with_my_score,
schedule_date=schedule
)
result = await self(req)
Expand Down
16 changes: 11 additions & 5 deletions telethon/client/uploads.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ async def send_file(
video_note: bool = False,
buttons: 'hints.MarkupLike' = None,
silent: bool = None,
background: bool = None,
supports_streaming: bool = False,
schedule: 'hints.DateLike' = None,
comment_to: 'typing.Union[int, types.Message]' = None,
Expand Down Expand Up @@ -249,6 +250,9 @@ async def send_file(
the person has the chat muted). Set it to `True` to alter
this behaviour.
background (`bool`, optional):
Whether the message should be send in background.
supports_streaming (`bool`, optional):
Whether the sent video supports streaming or not. Note that
Telegram only recognizes as streamable some formats like MP4,
Expand Down Expand Up @@ -347,7 +351,7 @@ def callback(current, total):
progress_callback=progress_callback, reply_to=reply_to,
parse_mode=parse_mode, silent=silent, schedule=schedule,
supports_streaming=supports_streaming, clear_draft=clear_draft,
force_document=force_document
force_document=force_document, background=background,
)
file = file[10:]
captions = captions[10:]
Expand All @@ -360,7 +364,7 @@ def callback(current, total):
attributes=attributes, thumb=thumb, voice_note=voice_note,
video_note=video_note, buttons=buttons, silent=silent,
supports_streaming=supports_streaming, schedule=schedule,
clear_draft=clear_draft,
clear_draft=clear_draft, background=background,
**kwargs
))

Expand Down Expand Up @@ -389,15 +393,16 @@ def callback(current, total):
request = functions.messages.SendMediaRequest(
entity, media, reply_to_msg_id=reply_to, message=caption,
entities=msg_entities, reply_markup=markup, silent=silent,
schedule_date=schedule, clear_draft=clear_draft
schedule_date=schedule, clear_draft=clear_draft,
background=background
)
return self._get_response_message(request, await self(request), entity)

async def _send_album(self: 'TelegramClient', entity, files, caption='',
progress_callback=None, reply_to=None,
parse_mode=(), silent=None, schedule=None,
supports_streaming=None, clear_draft=None,
force_document=False):
force_document=False, background=None):
"""Specialized version of .send_file for albums"""
# We don't care if the user wants to avoid cache, we will use it
# anyway. Why? The cached version will be exactly the same thing
Expand Down Expand Up @@ -456,7 +461,8 @@ async def _send_album(self: 'TelegramClient', entity, files, caption='',
# Now we can construct the multi-media request
request = functions.messages.SendMultiMediaRequest(
entity, reply_to_msg_id=reply_to, multi_media=media,
silent=silent, schedule_date=schedule, clear_draft=clear_draft
silent=silent, schedule_date=schedule, clear_draft=clear_draft,
background=background
)
result = await self(request)

Expand Down
20 changes: 16 additions & 4 deletions telethon/tl/custom/button.py
Original file line number Diff line number Diff line change
Expand Up @@ -245,17 +245,29 @@ def request_poll(cls, text, *, force_quiz=False,
resize=resize, single_use=single_use, selective=selective)

@staticmethod
def clear():
def clear(selective=None):
"""
Clears all keyboard buttons after sending a message with this markup.
When used, no other button should be present or it will be ignored.
``selective`` is as documented in `text`.
"""
return types.ReplyKeyboardHide()
return types.ReplyKeyboardHide(selective=selective)

@staticmethod
def force_reply():
def force_reply(single_use=None, selective=None, placeholder=None):
"""
Forces a reply to the message with this markup. If used,
no other button should be present or it will be ignored.
``single_use`` and ``selective`` are as documented in `text`.
Args:
placeholder (str):
text to show the user at typing place of message.
"""
return types.ReplyKeyboardForceReply()
return types.ReplyKeyboardForceReply(
single_use=single_use,
selective=selective,
placeholder=placeholder)
10 changes: 8 additions & 2 deletions telethon/tl/custom/inlineresult.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,8 @@ def document(self):
return self.result.document

async def click(self, entity=None, reply_to=None, comment_to=None,
silent=False, clear_draft=False, hide_via=False):
silent=False, clear_draft=False, hide_via=False,
background=None):
"""
Clicks this result and sends the associated `message`.
Expand All @@ -128,10 +129,14 @@ async def click(self, entity=None, reply_to=None, comment_to=None,
clear_draft (`bool`, optional):
Whether the draft should be removed after sending the
message from this result or not. Defaults to `False`.
hide_via (`bool`, optional):
Whether the "via @bot" should be hidden or not.
Only works with certain bots (like @bing or @gif).
background (`bool`, optional):
Whether the message should be send in background.
"""
if entity:
entity = await self._client.get_input_entity(entity)
Expand All @@ -150,6 +155,7 @@ async def click(self, entity=None, reply_to=None, comment_to=None,
query_id=self._query_id,
id=self.result.id,
silent=silent,
background=background,
clear_draft=clear_draft,
hide_via=hide_via,
reply_to_msg_id=reply_id
Expand Down

0 comments on commit e5599c1

Please sign in to comment.