mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2024-11-23 01:46:35 +03:00
Add respond, reply and delete methods to events.ChatAction
Also introduces the new .action_message member.
This commit is contained in:
parent
dc99d119c3
commit
801018fa9b
|
@ -518,37 +518,37 @@ class ChatAction(_EventBuilder):
|
||||||
msg = update.message
|
msg = update.message
|
||||||
action = update.message.action
|
action = update.message.action
|
||||||
if isinstance(action, types.MessageActionChatJoinedByLink):
|
if isinstance(action, types.MessageActionChatJoinedByLink):
|
||||||
event = ChatAction.Event(msg.to_id,
|
event = ChatAction.Event(msg,
|
||||||
added_by=True,
|
added_by=True,
|
||||||
users=msg.from_id)
|
users=msg.from_id)
|
||||||
elif isinstance(action, types.MessageActionChatAddUser):
|
elif isinstance(action, types.MessageActionChatAddUser):
|
||||||
event = ChatAction.Event(msg.to_id,
|
event = ChatAction.Event(msg,
|
||||||
added_by=msg.from_id or True,
|
added_by=msg.from_id or True,
|
||||||
users=action.users)
|
users=action.users)
|
||||||
elif isinstance(action, types.MessageActionChatDeleteUser):
|
elif isinstance(action, types.MessageActionChatDeleteUser):
|
||||||
event = ChatAction.Event(msg.to_id,
|
event = ChatAction.Event(msg,
|
||||||
kicked_by=msg.from_id or True,
|
kicked_by=msg.from_id or True,
|
||||||
users=action.user_id)
|
users=action.user_id)
|
||||||
elif isinstance(action, types.MessageActionChatCreate):
|
elif isinstance(action, types.MessageActionChatCreate):
|
||||||
event = ChatAction.Event(msg.to_id,
|
event = ChatAction.Event(msg,
|
||||||
users=action.users,
|
users=action.users,
|
||||||
created=True,
|
created=True,
|
||||||
new_title=action.title)
|
new_title=action.title)
|
||||||
elif isinstance(action, types.MessageActionChannelCreate):
|
elif isinstance(action, types.MessageActionChannelCreate):
|
||||||
event = ChatAction.Event(msg.to_id,
|
event = ChatAction.Event(msg,
|
||||||
created=True,
|
created=True,
|
||||||
users=msg.from_id,
|
users=msg.from_id,
|
||||||
new_title=action.title)
|
new_title=action.title)
|
||||||
elif isinstance(action, types.MessageActionChatEditTitle):
|
elif isinstance(action, types.MessageActionChatEditTitle):
|
||||||
event = ChatAction.Event(msg.to_id,
|
event = ChatAction.Event(msg,
|
||||||
users=msg.from_id,
|
users=msg.from_id,
|
||||||
new_title=action.title)
|
new_title=action.title)
|
||||||
elif isinstance(action, types.MessageActionChatEditPhoto):
|
elif isinstance(action, types.MessageActionChatEditPhoto):
|
||||||
event = ChatAction.Event(msg.to_id,
|
event = ChatAction.Event(msg,
|
||||||
users=msg.from_id,
|
users=msg.from_id,
|
||||||
new_photo=action.photo)
|
new_photo=action.photo)
|
||||||
elif isinstance(action, types.MessageActionChatDeletePhoto):
|
elif isinstance(action, types.MessageActionChatDeletePhoto):
|
||||||
event = ChatAction.Event(msg.to_id,
|
event = ChatAction.Event(msg,
|
||||||
users=msg.from_id,
|
users=msg.from_id,
|
||||||
new_photo=True)
|
new_photo=True)
|
||||||
else:
|
else:
|
||||||
|
@ -591,10 +591,17 @@ class ChatAction(_EventBuilder):
|
||||||
new_title (:obj:`bool`, optional):
|
new_title (:obj:`bool`, optional):
|
||||||
The new title string for the chat, if applicable.
|
The new title string for the chat, if applicable.
|
||||||
"""
|
"""
|
||||||
def __init__(self, chat_peer, new_pin=None, new_photo=None,
|
def __init__(self, where, new_pin=None, new_photo=None,
|
||||||
added_by=None, kicked_by=None, created=None,
|
added_by=None, kicked_by=None, created=None,
|
||||||
users=None, new_title=None):
|
users=None, new_title=None, action_message=None):
|
||||||
super().__init__(chat_peer=chat_peer, msg_id=new_pin)
|
if isinstance(where, types.MessageService):
|
||||||
|
self.action_message = where
|
||||||
|
where = where.to_id
|
||||||
|
else:
|
||||||
|
self.action_message = None
|
||||||
|
|
||||||
|
super().__init__(chat_peer=where, msg_id=new_pin)
|
||||||
|
self.action_message = action_message
|
||||||
|
|
||||||
self.new_pin = isinstance(new_pin, int)
|
self.new_pin = isinstance(new_pin, int)
|
||||||
self._pinned_message = new_pin
|
self._pinned_message = new_pin
|
||||||
|
@ -626,6 +633,40 @@ class ChatAction(_EventBuilder):
|
||||||
self._input_users = None
|
self._input_users = None
|
||||||
self.new_title = new_title
|
self.new_title = new_title
|
||||||
|
|
||||||
|
def respond(self, *args, **kwargs):
|
||||||
|
"""
|
||||||
|
Responds to the chat action message (not as a reply).
|
||||||
|
Shorthand for ``client.send_message(event.chat, ...)``.
|
||||||
|
"""
|
||||||
|
return self._client.send_message(self.input_chat, *args, **kwargs)
|
||||||
|
|
||||||
|
def reply(self, *args, **kwargs):
|
||||||
|
"""
|
||||||
|
Replies to the chat action message (as a reply). Shorthand for
|
||||||
|
``client.send_message(event.chat, ..., reply_to=event.message.id)``.
|
||||||
|
|
||||||
|
Has the same effect as ``.respond()`` if there is no message.
|
||||||
|
"""
|
||||||
|
if not self.action_message:
|
||||||
|
return self.respond(*args, **kwargs)
|
||||||
|
|
||||||
|
kwargs['reply_to'] = self.action_message.id
|
||||||
|
return self._client.send_message(self.input_chat, *args, **kwargs)
|
||||||
|
|
||||||
|
def delete(self, *args, **kwargs):
|
||||||
|
"""
|
||||||
|
Deletes the chat action message. You're responsible for checking
|
||||||
|
whether you have the permission to do so, or to except the error
|
||||||
|
otherwise. This is a shorthand for
|
||||||
|
``client.delete_messages(event.chat, event.message, ...)``.
|
||||||
|
|
||||||
|
Does nothing if no message action triggered this event.
|
||||||
|
"""
|
||||||
|
if self.action_message:
|
||||||
|
return self._client.delete_messages(self.input_chat,
|
||||||
|
[self.action_message],
|
||||||
|
*args, **kwargs)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def pinned_message(self):
|
def pinned_message(self):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue
Block a user