mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-03-03 19:00:21 +03:00
Add __str__ and .stringify() to events
This commit is contained in:
parent
b20aa0ccc9
commit
d6c051fd52
|
@ -2,11 +2,12 @@ import abc
|
||||||
import datetime
|
import datetime
|
||||||
import itertools
|
import itertools
|
||||||
import re
|
import re
|
||||||
|
import warnings
|
||||||
|
|
||||||
from .. import utils
|
from .. import utils
|
||||||
from ..errors import RPCError
|
from ..errors import RPCError
|
||||||
from ..extensions import markdown
|
from ..extensions import markdown
|
||||||
from ..tl import types, functions
|
from ..tl import TLObject, types, functions
|
||||||
|
|
||||||
|
|
||||||
def _into_id_set(client, chats):
|
def _into_id_set(client, chats):
|
||||||
|
@ -170,6 +171,17 @@ class _EventCommon(abc.ABC):
|
||||||
|
|
||||||
return self._chat
|
return self._chat
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return TLObject.pretty_format(self.to_dict())
|
||||||
|
|
||||||
|
def stringify(self):
|
||||||
|
return TLObject.pretty_format(self.to_dict(), indent=0)
|
||||||
|
|
||||||
|
def to_dict(self):
|
||||||
|
d = {k: v for k, v in self.__dict__.items() if k[0] != '_'}
|
||||||
|
d['_'] = self.__class__.__name__
|
||||||
|
return d
|
||||||
|
|
||||||
|
|
||||||
class Raw(_EventBuilder):
|
class Raw(_EventBuilder):
|
||||||
"""
|
"""
|
||||||
|
@ -182,9 +194,19 @@ class Raw(_EventBuilder):
|
||||||
return update
|
return update
|
||||||
|
|
||||||
|
|
||||||
|
def _name_inner_event(cls):
|
||||||
|
"""Decorator to rename cls.Event 'Event' as 'cls.Event'"""
|
||||||
|
if hasattr(cls, 'Event'):
|
||||||
|
cls.Event.__name__ = '{}.Event'.format(cls.__name__)
|
||||||
|
else:
|
||||||
|
warnings.warn('Class {} does not have a inner Event'.format(cls))
|
||||||
|
return cls
|
||||||
|
|
||||||
|
|
||||||
# Classes defined here are actually Event builders
|
# Classes defined here are actually Event builders
|
||||||
# for their inner Event classes. Inner ._client is
|
# for their inner Event classes. Inner ._client is
|
||||||
# set later by the creator TelegramClient.
|
# set later by the creator TelegramClient.
|
||||||
|
@_name_inner_event
|
||||||
class NewMessage(_EventBuilder):
|
class NewMessage(_EventBuilder):
|
||||||
"""
|
"""
|
||||||
Represents a new message event builder.
|
Represents a new message event builder.
|
||||||
|
@ -580,6 +602,7 @@ class NewMessage(_EventBuilder):
|
||||||
return self.message.out
|
return self.message.out
|
||||||
|
|
||||||
|
|
||||||
|
@_name_inner_event
|
||||||
class ChatAction(_EventBuilder):
|
class ChatAction(_EventBuilder):
|
||||||
"""
|
"""
|
||||||
Represents an action in a chat (such as user joined, left, or new pin).
|
Represents an action in a chat (such as user joined, left, or new pin).
|
||||||
|
@ -874,6 +897,7 @@ class ChatAction(_EventBuilder):
|
||||||
return self._input_users
|
return self._input_users
|
||||||
|
|
||||||
|
|
||||||
|
@_name_inner_event
|
||||||
class UserUpdate(_EventBuilder):
|
class UserUpdate(_EventBuilder):
|
||||||
"""
|
"""
|
||||||
Represents an user update (gone online, offline, joined Telegram).
|
Represents an user update (gone online, offline, joined Telegram).
|
||||||
|
@ -1022,6 +1046,7 @@ class UserUpdate(_EventBuilder):
|
||||||
return self.chat
|
return self.chat
|
||||||
|
|
||||||
|
|
||||||
|
@_name_inner_event
|
||||||
class MessageEdited(NewMessage):
|
class MessageEdited(NewMessage):
|
||||||
"""
|
"""
|
||||||
Event fired when a message has been edited.
|
Event fired when a message has been edited.
|
||||||
|
@ -1037,6 +1062,7 @@ class MessageEdited(NewMessage):
|
||||||
return self._message_filter_event(event)
|
return self._message_filter_event(event)
|
||||||
|
|
||||||
|
|
||||||
|
@_name_inner_event
|
||||||
class MessageDeleted(_EventBuilder):
|
class MessageDeleted(_EventBuilder):
|
||||||
"""
|
"""
|
||||||
Event fired when one or more messages are deleted.
|
Event fired when one or more messages are deleted.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user