geksbot-matrix/lib/events.py
2019-10-20 14:56:36 -08:00

40 lines
708 B
Python

from dataclasses import dataclass
from typing import Optional, List
from .content import ContentBase
@dataclass
class EventBase:
content: ContentBase
type: str
sender: str
@dataclass
class UnsignedData:
age: int
redacted_because: Optional[EventBase] = None
transaction_id: Optional[str] = None
invite_room_state: Optional[List[EventBase]] = None
@dataclass
class RoomEvent(EventBase):
from .room import Room
event_id: str
origin_server_id: int
unsigned: UnsignedData
room: Room
@dataclass
class StateEvent(RoomEvent):
state_key: str
prev_content: Optional[EventBase] = None
@dataclass
class RedactionEvent(RoomEvent):
redacts: EventBase