Remove event proxy class
This commit is contained in:
parent
1d8de8b5f2
commit
2d95b54758
@ -1,4 +1,3 @@
|
|||||||
from .plugin_base import Plugin
|
from .plugin_base import Plugin
|
||||||
from .command_spec import CommandSpec, Command, PassiveCommand, Argument
|
from .command_spec import CommandSpec, Command, PassiveCommand, Argument
|
||||||
from .event import FakeEvent as Event
|
|
||||||
from .client import MaubotMatrixClient as Client
|
from .client import MaubotMatrixClient as Client
|
||||||
|
@ -1,64 +0,0 @@
|
|||||||
# maubot - A plugin-based Matrix bot system.
|
|
||||||
# Copyright (C) 2018 Tulir Asokan
|
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU Affero General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU Affero General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
from typing import Awaitable, Union
|
|
||||||
|
|
||||||
from mautrix.types import Event as MatrixEvent, EventType, MessageEventContent, MessageType, EventID
|
|
||||||
from mautrix.client.api.types.event.base import BaseRoomEvent
|
|
||||||
from mautrix.client import ClientAPI
|
|
||||||
|
|
||||||
|
|
||||||
class FakeEvent(BaseRoomEvent):
|
|
||||||
def __new__(cls, *args, **kwargs):
|
|
||||||
raise RuntimeError("Can't create instance of type hint header class")
|
|
||||||
|
|
||||||
def respond(self, content: Union[str, MessageEventContent],
|
|
||||||
event_type: EventType = EventType.ROOM_MESSAGE) -> Awaitable[EventID]:
|
|
||||||
raise RuntimeError("Can't call methods of type hint header class")
|
|
||||||
|
|
||||||
def reply(self, content: Union[str, MessageEventContent],
|
|
||||||
event_type: EventType = EventType.ROOM_MESSAGE) -> Awaitable[EventID]:
|
|
||||||
raise RuntimeError("Can't call methods of type hint header class")
|
|
||||||
|
|
||||||
def mark_read(self) -> Awaitable[None]:
|
|
||||||
raise RuntimeError("Can't call methods of type hint header class")
|
|
||||||
|
|
||||||
|
|
||||||
class Event:
|
|
||||||
def __init__(self, client: ClientAPI, target: MatrixEvent):
|
|
||||||
self.client: ClientAPI = client
|
|
||||||
self.target: MatrixEvent = target
|
|
||||||
|
|
||||||
def __getattr__(self, item):
|
|
||||||
return getattr(self.target, item)
|
|
||||||
|
|
||||||
def __setattr__(self, key, value):
|
|
||||||
return setattr(self.target, key, value)
|
|
||||||
|
|
||||||
def respond(self, content: Union[str, MessageEventContent],
|
|
||||||
event_type: EventType = EventType.ROOM_MESSAGE) -> Awaitable[EventID]:
|
|
||||||
if isinstance(content, str):
|
|
||||||
content = MessageEventContent(msgtype=MessageType.TEXT, body=content)
|
|
||||||
return self.client.send_message_event(self.target.room_id, event_type, content)
|
|
||||||
|
|
||||||
def reply(self, content: Union[str, MessageEventContent],
|
|
||||||
event_type: EventType = EventType.ROOM_MESSAGE) -> Awaitable[EventID]:
|
|
||||||
if isinstance(content, str):
|
|
||||||
content = MessageEventContent(msgtype=MessageType.TEXT, body=content)
|
|
||||||
content.set_reply(self.target)
|
|
||||||
return self.client.send_message_event(self.target.room_id, event_type, content)
|
|
||||||
|
|
||||||
def mark_read(self) -> Awaitable[None]:
|
|
||||||
return self.client.send_receipt(self.target.room_id, self.target.event_id, "m.read")
|
|
Loading…
Reference in New Issue
Block a user