From 66193dc27fc88befa45bcb9843175ff9618fd3f7 Mon Sep 17 00:00:00 2001 From: William P Date: Wed, 12 Jun 2024 17:19:50 +0000 Subject: [PATCH] fixes --- main.py | 8 +++--- vrcapi.py | 77 ++++++++++++++++++++++++++++--------------------------- 2 files changed, 43 insertions(+), 42 deletions(-) diff --git a/main.py b/main.py index 3f356e0..b963c49 100644 --- a/main.py +++ b/main.py @@ -6,7 +6,9 @@ session = get_session() if __name__ == "__main__": group_instances = getGroupInstances() - if group_instances is not []: + if not group_instances: + print("No group instances were found! Nothing to do...") + else: for instance in group_instances: try: db_instance = DBGroupInstance(timestamp=datetime.now(), @@ -17,6 +19,4 @@ if __name__ == "__main__": session.commit() print("Instance log added") except Exception as e: - print(f"Exception {e}") - else: - print("No group instances! Nothing to do") \ No newline at end of file + print(f"Exception {e}") \ No newline at end of file diff --git a/vrcapi.py b/vrcapi.py index 4d31964..107d990 100644 --- a/vrcapi.py +++ b/vrcapi.py @@ -27,7 +27,7 @@ def fakeGroupInstances(): "Fake world", None, 0, "vrchat", 0, None, 0, 0, "9/11/2021", "public", ["nothing", "testing"], "http://testing.localhost/thisisnotreal.png", [], datetime.now(), 5, 90, []) - # fake instance + # Fake instance fakeInstance1 = GroupInstance("TESTTESTgrp_69420_aaaaaaaaa", "test", fakeWorld, randint(1, 50)) @@ -47,47 +47,48 @@ def getGroupInstances(): group_id = os.getenv("GROUP_ID") with vrchatapi.ApiClient(configuration) as api_client: - # Set our User-Agent as per VRChat Usage Policy - api_client.user_agent = "GroupInstanceLogger/0.1alpha me@williamtpeebles.com" + # Set our User-Agent as per VRChat Usage Policy + api_client.user_agent = "GroupInstanceLogger/0.1alpha me@williamtpeebles.com" - # Instantiate instances of API classes - auth_api = authentication_api.AuthenticationApi(api_client) + # Instantiate instances of API classes + auth_api = authentication_api.AuthenticationApi(api_client) - try: - # Calling getCurrentUser on Authentication API logs you in if the user isn't already logged in. - current_user = auth_api.get_current_user() - except UnauthorizedException as e: - if e.status == 200: - if "Email 2 Factor Authentication" in e.reason: - # Calling email verify2fa if the account has 2FA disabled, give warning that automatic runs cannot be done - print("IMPORTANT: Your VRChat Account is only enabled for **email** based 2-factor authentication! " - "You will not be able to automate runs of GroupInstanceLogger\n" - "Set up your account to use TOTP-based 2FA so the application can log you in automatically\n\n") - auth_api.verify2_fa_email_code(two_factor_email_code=TwoFactorEmailCode(input("Email 2FA Code: "))) - elif "2 Factor Authentication" in e.reason: - # Check if TOTP code is defined in env variables - if os.getenv("TOTP_KEY") is not None: - print("Attempting to authenticate with defined TOTP key") - auth_api.verify2_fa(two_factor_auth_code=TwoFactorAuthCode(getTOTP())) - else: - # TOTP prompt if not configured - auth_api.verify2_fa(two_factor_auth_code=input("Enter 2FA Code: ")) + try: + # Calling getCurrentUser on Authentication API logs you in if the user isn't already logged in. + current_user = auth_api.get_current_user() + except UnauthorizedException as e: + if e.status == 200: + if "Email 2 Factor Authentication" in e.reason: + # Calling email verify2fa if the account has 2FA disabled, give warning that automatic runs cannot be done + print("IMPORTANT: Your VRChat Account is only enabled for **email** based 2-factor authentication! " + "You will not be able to automate runs of GroupInstanceLogger\n" + "Set up your account to use TOTP-based 2FA so the application can log you in automatically\n\n") + auth_api.verify2_fa_email_code(two_factor_email_code=TwoFactorEmailCode(input("Email 2FA Code: "))) + elif "2 Factor Authentication" in e.reason: + # Check if TOTP code is defined in env variables + if os.getenv("TOTP_KEY") is not None: + print("Attempting to authenticate with defined TOTP key") + auth_api.verify2_fa(two_factor_auth_code=TwoFactorAuthCode(getTOTP())) + else: + # TOTP prompt if not configured # Calling verify2fa if the account has 2FA enabled - current_user = auth_api.get_current_user() + auth_api.verify2_fa(two_factor_auth_code=TwoFactorAuthCode(input("Enter 2FA Code: "))) + + current_user = auth_api.get_current_user() - # Call groups APIs - groups_api_instance = vrchatapi.GroupsApi(api_client) + # Call groups APIs + groups_api_instance = vrchatapi.GroupsApi(api_client) - try: - api_response = groups_api_instance.get_group_instances(group_id) # Get group - for instance in api_response: - group_instances.append(instance) - return group_instances - except ApiException as e: - print("Exception when calling GroupsApi->get_group: %s\n" % e) - else: - print("Exception when calling API: %s\n", e) - except vrchatapi.ApiException as e: + try: + api_response = groups_api_instance.get_group_instances(group_id) # Get group + for instance in api_response: + group_instances.append(instance) + return group_instances + except ApiException as e: + print("Exception when calling GroupsApi->get_group: %s\n" % e) + else: print("Exception when calling API: %s\n", e) + except vrchatapi.ApiException as e: + print("Exception when calling API: %s\n", e) - print("Logged in as:", current_user.display_name) \ No newline at end of file + print("Logged in as:", current_user.display_name)