forked from platypush/platypush
1. `chat.telegram` -> `telegram` plugin. 2. Merged `backend.chat.telegram` logic into `telegram` plugin. 3. Rewritten the architecture of the integration to adapt to the new asyncio API introduced in the latest versions of telegram-bot-api. Closes: #349
87 lines
2.2 KiB
Python
87 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:
|