#!/usr/bin/env python3
import json
import os
from pathlib import Path


profile = Path(os.environ.get("VOGES_PROFILE", Path.home() / ".config" / "voges"))
marker = profile / ".voges-profile-v5"
preferences = profile / "Default" / "Preferences"

if marker.exists() or (profile / "SingletonLock").exists():
    raise SystemExit(0)

preferences.parent.mkdir(parents=True, exist_ok=True)
try:
    data = json.loads(preferences.read_text(encoding="utf-8"))
    if not isinstance(data, dict):
        data = {}
except (OSError, ValueError):
    data = {}

browser = data.setdefault("browser", {})
browser.update(
    {
        "check_default_browser": False,
        # Mantém abas e controles da janela na mesma faixa. A ordem e o lado
        # dos botões continuam seguindo a configuração do sistema.
        "custom_chrome_frame": True,
        "has_seen_welcome_page": True,
        "show_home_button": False,
    }
)
data.setdefault("bookmark_bar", {})["show_on_all_tabs"] = False
data.setdefault("signin", {})["allowed"] = False
data["credentials_enable_service"] = False
data["metrics_reporting_enabled"] = False
autofill = data.setdefault("autofill", {})
autofill["profile_enabled"] = False
autofill["credit_card_enabled"] = False
data.setdefault("translate", {})["enabled"] = True
spellcheck = data.setdefault("spellcheck", {})
spellcheck["dictionaries"] = ["pt-BR"]
spellcheck["use_spelling_service"] = False
safebrowsing = data.setdefault("safebrowsing", {})
safebrowsing["enabled"] = True
safebrowsing["scout_reporting_enabled"] = False
privacy_sandbox = data.setdefault("privacy_sandbox", {})
privacy_sandbox["apis_enabled"] = False
privacy_sandbox_m1 = privacy_sandbox.setdefault("m1", {})
privacy_sandbox_m1["topics_enabled"] = False
privacy_sandbox_m1["fledge_enabled"] = False
privacy_sandbox_m1["ad_measurement_enabled"] = False

temporary = preferences.with_suffix(".tmp")
temporary.write_text(
    json.dumps(data, ensure_ascii=False, separators=(",", ":")),
    encoding="utf-8",
)
temporary.replace(preferences)
marker.touch()
