platypush/platypush/message/event/telegram.py

88 lines
2.2 KiB
Python

from typing import List, Optional
from platypush.message.event import Event
class TelegramEvent(Event):
"""
Base class for all the Telegram events.
"""
def __init__(self, *args, chat_id: int, **kwargs):
super().__init__(*args, chat_id=chat_id, **kwargs)
class MessageEvent(TelegramEvent):
"""
Event triggered when a new message is received by the Telegram bot.
"""
def __init__( # pylint: disable=useless-parent-delegation
self, *args, message: Optional[dict], user: Optional[dict], **kwargs
):
"""
:param message: .. schema:: telegram.TelegramMessageSchema
:param user: .. schema:: telegram.TelegramUserSchema
"""
super().__init__(*args, message=message, user=user, **kwargs)
class CommandMessageEvent(MessageEvent):
"""
Event triggered when a new message is received by the Telegram bot.
"""
def __init__( # pylint: disable=useless-parent-delegation
self, *args, command: str, cmdargs: Optional[List[str]] = None, **kwargs
):
"""
:param command: Command name.
:param cmdargs: Command arguments.
"""
super().__init__(*args, command=command, cmdargs=(cmdargs or []), **kwargs)
class TextMessageEvent(MessageEvent):
"""
Event triggered when a new text message is received by the Telegram bot.
"""
class PhotoMessageEvent(MessageEvent):
"""
Event triggered when a new photo message is received by the Telegram bot.
"""
class VideoMessageEvent(MessageEvent):
"""
Event triggered when a new video message is received by the Telegram bot.
"""
class ContactMessageEvent(MessageEvent):
"""
Event triggered when a new contact message is received by the Telegram bot.
"""
class LocationMessageEvent(MessageEvent):
"""
Event triggered when a new location message is received by the Telegram bot.
"""
class DocumentMessageEvent(MessageEvent):
"""
Event triggered when a new document message is received by the Telegram bot.
"""
class GroupChatCreatedEvent(MessageEvent):
"""
Event triggered when a new group chat is created.
"""
# vim:sw=4:ts=4:et: