Return a single message from client.forward on non-list inputs

This commit is contained in:
Lonami Exo 2018-04-04 20:58:58 +02:00
parent 591e34b491
commit f9f49a893b
2 changed files with 13 additions and 11 deletions

View File

@ -387,7 +387,7 @@ class NewMessage(_EventBuilder):
Forwards the message. This is a shorthand for Forwards the message. This is a shorthand for
``client.forward_messages(entity, event.message, event.chat)``. ``client.forward_messages(entity, event.message, event.chat)``.
""" """
kwargs['messages'] = [self.message.id] kwargs['messages'] = self.message.id
kwargs['from_peer'] = self.input_chat kwargs['from_peer'] = self.input_chat
return self._client.forward_messages(*args, **kwargs) return self._client.forward_messages(*args, **kwargs)

View File

@ -819,9 +819,11 @@ class TelegramClient(TelegramBareClient):
order for the forward to work. order for the forward to work.
Returns: Returns:
The list of forwarded :tl:`Message`. The list of forwarded :tl:`Message`, or a single one if a list
wasn't provided as input.
""" """
if not utils.is_list_like(messages): single = not utils.is_list_like(messages)
if single:
messages = (messages,) messages = (messages,)
if not from_peer: if not from_peer:
@ -852,7 +854,8 @@ class TelegramClient(TelegramBareClient):
elif isinstance(update, (UpdateNewMessage, UpdateNewChannelMessage)): elif isinstance(update, (UpdateNewMessage, UpdateNewChannelMessage)):
id_to_message[update.message.id] = update.message id_to_message[update.message.id] = update.message
return [id_to_message[random_to_id[rnd]] for rnd in req.random_id] result = [id_to_message[random_to_id[rnd]] for rnd in req.random_id]
return result[0] if single else result
def edit_message(self, entity, message_id, message=None, parse_mode='md', def edit_message(self, entity, message_id, message=None, parse_mode='md',
link_preview=True): link_preview=True):
@ -1398,7 +1401,8 @@ class TelegramClient(TelegramBareClient):
it will be used to determine metadata from audio and video files. it will be used to determine metadata from audio and video files.
Returns: Returns:
The :tl:`Message` (or messages) containing the sent file. The :tl:`Message` (or messages) containing the sent file,
or messages if a list of them was passed.
""" """
# First check if the user passed an iterable, in which case # First check if the user passed an iterable, in which case
# we may want to send as an album if all are photo files. # we may want to send as an album if all are photo files.
@ -2317,13 +2321,11 @@ class TelegramClient(TelegramBareClient):
error will be raised. error will be raised.
Returns: Returns:
:tl:`User`, :tl:`Chat` or :tl:`Channel` corresponding to the input :tl:`User`, :tl:`Chat` or :tl:`Channel` corresponding to the
entity. input entity. A list will be returned if more than one was given.
""" """
if utils.is_list_like(entity): single = not utils.is_list_like(entity)
single = False if single:
else:
single = True
entity = (entity,) entity = (entity,)
# Group input entities by string (resolve username), # Group input entities by string (resolve username),