"""Provider info class.""" from .capi import ffi, lib from .cutil import as_dc_charpointer, from_dc_charpointer class ProviderNotFoundError(Exception): """The provider information was not found.""" class Provider: """ Provider information. :param domain: The email to get the provider info for. """ def __init__(self, account, addr) -> None: provider = ffi.gc( lib.dc_provider_new_from_email(account._dc_context, as_dc_charpointer(addr)), lib.dc_provider_unref, ) if provider == ffi.NULL: raise ProviderNotFoundError("Provider not found") self._provider = provider @property def overview_page(self) -> str: """URL to the overview page of the provider on providers.delta.chat.""" return from_dc_charpointer(lib.dc_provider_get_overview_page(self._provider)) @property def get_before_login_hints(self) -> str: """Should be shown to the user on login.""" return from_dc_charpointer(lib.dc_provider_get_before_login_hint(self._provider)) @property def status(self) -> int: """The status of the provider information. This is one of the :attr:`deltachat.const.DC_PROVIDER_STATUS_OK`, :attr:`deltachat.const.DC_PROVIDER_STATUS_PREPARATION` or :attr:`deltachat.const.DC_PROVIDER_STATUS_BROKEN` constants. """ return lib.dc_provider_get_status(self._provider)