#!/usr/bin/env python3
"""Open the Wenwu question form as an app-like browser window."""

import os
import shutil
import socket
import subprocess
import sys
import time
import urllib.parse
import urllib.request


BASE_URL = "https://wenwu.site/"


def network_ready() -> bool:
    try:
        with urllib.request.urlopen(BASE_URL + "health", timeout=4) as response:
            return response.status == 200
    except Exception:
        return False


def main() -> None:
    if "--autostart" in sys.argv:
        time.sleep(4)
        for _ in range(12):
            if network_ready():
                break
            time.sleep(5)

    device = socket.gethostname()[:120]
    url = BASE_URL + "?" + urllib.parse.urlencode({"device": device, "source": "ubuntu"})
    browsers = [
        ("google-chrome", ["--app=" + url, "--start-maximized"]),
        ("google-chrome-stable", ["--app=" + url, "--start-maximized"]),
        ("chromium", ["--app=" + url, "--start-maximized"]),
        ("chromium-browser", ["--app=" + url, "--start-maximized"]),
        ("firefox", ["--new-window", url]),
    ]
    for command, arguments in browsers:
        executable = shutil.which(command)
        if executable:
            subprocess.Popen([executable, *arguments], start_new_session=True)
            return
    subprocess.Popen(["xdg-open", url], start_new_session=True)


if __name__ == "__main__":
    main()
