Make custom.Message more consistent with previous patches

This commit is contained in:
Lonami Exo 2018-05-31 13:50:08 +02:00
parent 9e4854fcce
commit 58f621ba82

View File

@ -28,9 +28,9 @@ class Message:
self._reply_to = None self._reply_to = None
self._buttons = None self._buttons = None
self._buttons_flat = [] self._buttons_flat = []
self._from_user = entities.get(self.original_message.from_id) self._sender = entities.get(self.original_message.from_id)
self._chat = entities.get(get_peer_id(self.original_message.to_id)) self._chat = entities.get(get_peer_id(self.original_message.to_id))
self._from_input_user = None self._input_sender = None
self._input_chat = input_chat self._input_chat = input_chat
def __getattr__(self, item): def __getattr__(self, item):
@ -50,8 +50,10 @@ class Message:
def text(self): def text(self):
""" """
The message text, markdown-formatted. The message text, markdown-formatted.
Will be ``None`` for :tl:`MessageService`.
""" """
if self._text is None: if self._text is None\
and isinstance(self.original_message, types.Message):
if not self.original_message.entities: if not self.original_message.entities:
return self.original_message.message return self.original_message.message
self._text = markdown.unparse(self.original_message.message, self._text = markdown.unparse(self.original_message.message,
@ -62,14 +64,33 @@ class Message:
def raw_text(self): def raw_text(self):
""" """
The raw message text, ignoring any formatting. The raw message text, ignoring any formatting.
Will be ``None`` for :tl:`MessageService`.
""" """
if isinstance(self.original_message, types.Message):
return self.original_message.message return self.original_message.message
@property @property
def from_user(self): def message(self):
if self._from_user is None: """
self._from_user = self._client.get_entity(self.from_input_user) The raw message text, ignoring any formatting.
return self._from_user Will be ``None`` for :tl:`MessageService`.
"""
return self.raw_text
@property
def action(self):
"""
The :tl:`MessageAction` for the :tl:`MessageService`.
Will be ``None`` for :tl:`Message`.
"""
if isinstance(self.original_message, types.MessageService):
return self.original_message.action
@property
def sender(self):
if self._sender is None:
self._sender = self._client.get_entity(self.input_sender)
return self._sender
@property @property
def chat(self): def chat(self):
@ -78,14 +99,14 @@ class Message:
return self._chat return self._chat
@property @property
def from_input_user(self): def input_sender(self):
if self._from_input_user is None: if self._input_sender is None:
if self._from_user is not None: if self._sender is not None:
self._from_input_user = get_input_peer(self._from_user) self._input_sender = get_input_peer(self._sender)
else: else:
self._from_input_user = self._client.get_input_entity( self._input_sender = self._client.get_input_entity(
self.original_message.from_id) self.original_message.from_id)
return self._from_input_user return self._input_sender
@property @property
def input_chat(self): def input_chat(self):
@ -115,8 +136,8 @@ class Message:
if isinstance(self.original_message.reply_markup, ( if isinstance(self.original_message.reply_markup, (
types.ReplyInlineMarkup, types.ReplyKeyboardMarkup)): types.ReplyInlineMarkup, types.ReplyKeyboardMarkup)):
self._buttons = [[ self._buttons = [[
MessageButton(self._client, button, self.from_user, MessageButton(self._client, button, self.input_sender,
self.chat, self.original_message.id) self.input_chat, self.original_message.id)
for button in row.buttons for button in row.buttons
] for row in self.original_message.reply_markup.rows] ] for row in self.original_message.reply_markup.rows]
self._buttons_flat = [x for row in self._buttons for x in row] self._buttons_flat = [x for row in self._buttons for x in row]