geksbot-matrix/lib/events.py
Dusty Pianalto 804148dfe3 Add What I think are the basic event and content classes
Create skeleton room class
Create util classes for content
2019-10-20 01:02:54 -08:00

40 lines
704 B
Python

from dataclasses import dataclass
from typing import Optional, List
from .room import Room
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):
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