"""Helper script to update supported languages for Microsoft text-to-speech (TTS)."""
from pathlib import Path

from lxml import html
import requests

from .hassfest.serializer import format_python_namespace

URL = "https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/language-support"
XPATH_QUERY = "//section[@data-tab='tts']/table[1]/tbody/tr/td[1]/code/text()"

req = requests.get(URL)
req.raise_for_status()
tree = html.fromstring(req.content)
supported_languages_raw = tree.xpath(XPATH_QUERY)
supported_languages = {s.lower() for s in supported_languages_raw}

Path("homeassistant/generated/microsoft_tts.py").write_text(
    format_python_namespace(
        {
            "SUPPORTED_LANGUAGES": supported_languages,
        },
        generator="script.microsoft_tts",
    )
)