import base64
import json

def decode_vmess(uri: str) -> dict:
    """vmess:// URI をデコードして設定 dict を返す"""
    encoded = uri.removeprefix("vmess://")
    # Base64 パディング補正
    padding = 4 - len(encoded) % 4
    if padding != 4:
        encoded += "=" * padding
    decoded = base64.b64decode(encoded).decode("utf-8")
    return json.loads(decoded)

def parse_vless(uri: str) -> dict:
    """vless://uuid@host:port?params#name 形式をパース"""
    rest = uri.removeprefix("vless://")
    name = rest.split("#")[-1] if "#" in rest else ""
    main = rest.split("#")[0]
    uuid, host_part = main.split("@", 1)
    host_port = host_part.split("?")[0]
    host, port = host_port.rsplit(":", 1)
    return {"uuid": uuid, "host": host, "port": port, "name": name}

# 使用例
vmess_uri = "vmess://eyJhZGQiOiJleGFtcGxlLmNvbSIsInBvcnQiOiI0NDMiLCJuZXQiOiJ3cyIsInRscyI6InRscyIsInBzIjoidGVzdCJ9"
try:
    config = decode_vmess(vmess_uri)
    print(f"ホスト: {config.get('add')}, ポート: {config.get('port')}, ネット: {config.get('net')}")
except Exception as e:
    print(f"デコードエラー: {e}")
