diff --git a/bluelinktoken.py b/bluelinktoken.py index 252bcfe..ca6d609 100755 --- a/bluelinktoken.py +++ b/bluelinktoken.py @@ -54,6 +54,21 @@ ), "success_selector": "button.mail_check", }, + "genesis": { + # Genesis Europe — constants from hyundai_kia_connect_api (KiaUvoApiEU.py, BRAND_GENESIS). + # Headless mode (username/password) works; browser mode is best-effort. + "host": "https://idpconnect-eu.genesis.com", + "client_id": "3020afa2-30ff-412a-aa51-d28fbe901e10", + "client_secret": "FKDdlef2ffdleFEweELFKERiLER2FED21sDdwdgQz6hFESE3", + "redirect_uri": "https://accounts-eu.genesis.com/realms/eugenesisidm/ga-api/redirect2", + "login_url": ( + "https://idpconnect-eu.genesis.com/auth/api/v2/user/oauth2/authorize" + "?response_type=code&client_id=3020afa2-30ff-412a-aa51-d28fbe901e10" + "&redirect_uri=https://accounts-eu.genesis.com/realms/eugenesisidm/ga-api/redirect2" + "&lang=de&state=ccsp&country=de" + ), + "success_selector": "a[class='logout user']", + }, } USER_AGENT = ( @@ -266,7 +281,7 @@ def main(): parser = argparse.ArgumentParser( description="Retrieve Hyundai/Kia Bluelink refresh token") parser.add_argument("--brand", required=True, type=str.lower, - choices=["hyundai", "kia"], + choices=["hyundai", "kia", "genesis"], help="Brand of vehicle") parser.add_argument("--mode", type=str.lower, default="headless", choices=["headless", "browser"],