Source code for osmium_chat.user.status

from enum import IntEnum

from osmium_protos import PB_UserStatus

from osmium_chat.user.activity import UserStatusActivity


__all__: tuple[str, ...] = (
    "UserStatusStatus",
    "UserStatus",
)


[docs] class UserStatusStatus(IntEnum): """A user's availability state.""" ONLINE = 0 IDLE = 1
[docs] class UserStatus: """A user's presence: online flag, status state, and activities.""" __slots__: tuple[str, ...] = ( "online", "status", "activities", ) def __init__(self, status: PB_UserStatus) -> None: """Build a status from a protobuf payload. :param status: The raw ``PB_UserStatus`` to read fields from. """ self.online: bool = status.online self.status: UserStatusStatus | None = UserStatusStatus(status.status) if status.status else None self.activities: list[UserStatusActivity] = [UserStatusActivity(activity) for activity in status.activities]