Source code for defectio.models.member
from __future__ import annotations
from defectio.models.server import Role
from defectio.types.websocket import ServerMemberUpdate
from typing import TYPE_CHECKING
from . import abc
from .mixins import Hashable
if TYPE_CHECKING:
from ..state import ConnectionState
from ..types.payloads import MemberPayload
class PartialMember(abc.Messageable, Hashable):
def __init__(self, id: str, state: ConnectionState):
self._state = state
self.id = id
def __repr__(self) -> str:
return f"<PartialMember {self.id}>"
def __str__(self) -> str:
return self.id
[docs]class Member(PartialMember):
def __init__(self, data: MemberPayload, state: ConnectionState):
self._state = state
self.nickname = data.get("nickname")
self.id = data.get("_id").get("user")
def _update(self, data: ServerMemberUpdate):
self.nickname = data.get("nickname", self.nickname)
def __repr__(self) -> str:
return f"<Member id={self.id} nickname={self.nickname}>"
def __str__(self) -> str:
return self.nickname