matrix-puppeteer-line/mautrix_line/rpc/types.py

63 lines
1.6 KiB
Python

# mautrix-amp - A very hacky Matrix-SMS bridge based on using Android Messages for Web in Puppeteer
# Copyright (C) 2020 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 Optional, List
from attr import dataclass
from mautrix.types import SerializableAttrs
class RPCError(Exception):
pass
@dataclass
class ChatListInfo(SerializableAttrs['ChatListInfo']):
id: int
name: str
lastMsg: str
lastMsgDate: str
@dataclass
class Participant(SerializableAttrs['Participant']):
id: str
name: str
@dataclass
class ChatInfo(ChatListInfo, SerializableAttrs['ChatInfo']):
participants: List[Participant]
readonly: bool
@dataclass
class Message(SerializableAttrs['Message']):
id: int
chat_id: int
is_outgoing: bool
timestamp: int = None
text: Optional[str] = None
image: Optional[str] = None
@dataclass
class StartStatus(SerializableAttrs['StartStatus']):
started: bool
is_logged_in: bool
is_connected: bool
is_permanently_disconnected: bool