Source code for mautrix.client.api.types.misc

# Copyright (c) 2018 Tulir Asokan
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
from enum import Enum
from typing import List, NewType, NamedTuple
from attr import dataclass

from .primitive import RoomID, RoomAlias, SyncToken, ContentURI
from .util import SerializableAttrs
from .event import Event


[docs]class RoomCreatePreset(Enum): PRIVATE = "private_chat" TRUSTED_PRIVATE = "trusted_private_chat" PUBLIC = "public_chat"
[docs]class RoomDirectoryVisibility(Enum): PRIVATE = "private" PUBLIC = "public"
[docs]class PaginationDirection(Enum): FORWARD = "f" BACKWARD = "b"
[docs]@dataclass class RoomAliasInfo(SerializableAttrs['RoomAliasInfo']): room_id: RoomID = None servers: List[str] = None
DirectoryPaginationToken = NewType("DirectoryPaginationToken", str)
[docs]@dataclass class PublicRoomInfo(SerializableAttrs['PublicRoomInfo']): room_id: RoomID num_joined_members: int world_readable: bool guests_can_join: bool name: str = None topic: str = None avatar_url: ContentURI = None aliases: List[RoomAlias] = None canonical_alias: RoomAlias = None
[docs]@dataclass class RoomDirectoryResponse(SerializableAttrs['RoomDirectoryResponse']): chunk: List[PublicRoomInfo] next_batch: DirectoryPaginationToken = None prev_batch: DirectoryPaginationToken = None total_room_count_estimate: int = None
PaginatedMessages = NamedTuple("PaginatedMessages", start=SyncToken, end=SyncToken, events=List[Event])