Source code for peyk.platform_core.capabilities.legacy

"""Compatibility projection for the pre-R0 capability dataclass."""
from __future__ import annotations
from peyk.platform_core.contracts import PlatformCapabilities
from . import Feature, get_capabilities

[docs] def legacy_capabilities(platform: str) -> PlatformCapabilities: """Build the legacy nine-field capability object from the audited registry.""" caps = get_capabilities(platform) modes = ["Markdown", "MarkdownV2", "HTML"] if platform == "telegram" else [] return PlatformCapabilities( platform=platform, supports_topics=caps.supports(Feature.FORUM_TOPICS), supports_scheduled_messages=False, update_delivery="both" if caps.get(Feature.POLLING).level.value != "none" and caps.get(Feature.WEBHOOK).level.value != "none" else "polling", supported_parse_modes=modes, callback_data_max_bytes=caps.limit("callback_data_max_bytes") if isinstance(caps.limit("callback_data_max_bytes"), int) else None, supports_payments=caps.supports(Feature.PAYMENTS), supports_admin_detection=platform in {"telegram", "bale"}, supports_chat_member_status_updates=platform == "telegram", )