core/homeassistant/components/mastodon/utils.py

44 lines
1.1 KiB
Python

"""Mastodon util functions."""
from __future__ import annotations
import mimetypes
from typing import Any
from mastodon import Mastodon
from mastodon.Mastodon import Account, Instance, InstanceV2
from .const import DEFAULT_NAME
def create_mastodon_client(
base_url: str, client_id: str, client_secret: str, access_token: str
) -> Mastodon:
"""Create a Mastodon client with the api base url."""
return Mastodon(
api_base_url=base_url,
client_id=client_id,
client_secret=client_secret,
access_token=access_token,
)
def construct_mastodon_username(
instance: InstanceV2 | Instance | None, account: Account | None
) -> str:
"""Construct a mastodon username from the account and instance."""
if instance and account:
if type(instance) is InstanceV2:
return f"@{account.username}@{instance.domain}"
return f"@{account.username}@{instance.uri}"
return DEFAULT_NAME
def get_media_type(media_path: Any = None) -> Any:
"""Get media type."""
(media_type, _) = mimetypes.guess_type(media_path)
return media_type