from __future__ import annotations import logging from yuxi.channel.extensions.twitter.auth import probe, verify_credentials logger = logging.getLogger(__name__) class TwitterStatus: @staticmethod async def probe_account(account: dict) -> bool: return await probe(account) @staticmethod async def get_account_info(account: dict) -> dict | None: return await verify_credentials(account) @staticmethod def build_summary(account: dict, user_info: dict | None = None) -> dict: summary: dict = { "account_id": account.get("account_id", ""), "configured": all( [ account.get("api_key"), account.get("api_secret"), account.get("access_token"), account.get("access_secret"), ] ), "dm_policy": account.get("dm_policy", "pairing"), "group_policy": account.get("group_policy", "disabled"), "connection_mode": account.get("connection_mode", "auto"), } if user_info: summary["user_id"] = user_info.get("user_id", "") summary["username"] = user_info.get("username", "") summary["display_name"] = user_info.get("name", "") summary["online"] = True return summary