diff options
Diffstat (limited to 'wrappers/python/main.py')
| -rw-r--r-- | wrappers/python/main.py | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/wrappers/python/main.py b/wrappers/python/main.py deleted file mode 100644 index 4881828..0000000 --- a/wrappers/python/main.py +++ /dev/null @@ -1,102 +0,0 @@ -import eduvpn_common.main as eduvpn -from eduvpn_common.state import State, StateType -import webbrowser -import sys -from typing import List - -# Asks the user for a profile index -# It loops up until a valid input is given -def ask_profile_input(total: int) -> int: - profile_index = None - - while profile_index is None: - try: - profile_index = int( - input("Please select a profile by inputting a number (e.g. 1): ") - ) - if (profile_index > total) or (profile_index < 1): - print("Invalid profile range") - profile_index = None - except ValueError: - print("Please enter a valid input") - - # The profile is one based, move to zero based input - return profile_index - 1 - - -# Sets up the callbacks using the provided class -def setup_callbacks(_eduvpn: eduvpn.EduVPN) -> None: - # The callback that starst OAuth - @_eduvpn.event.on(State.NO_SERVER, StateType.ENTER) - def no_server(old_state: str, servers) -> None: - for server in servers: - print(type(server)) - print(server) - # It needs to open the URL in the web browser - @_eduvpn.event.on(State.OAUTH_STARTED, StateType.ENTER) - def oauth_initialized(old_state: str, url: str) -> None: - print(f"Got OAuth URL {url}, old state: {old_state}") - webbrowser.open(url) - - @_eduvpn.event.on(State.ASK_LOCATION, StateType.ENTER) - def ask_location(old_state: str, locations: List[str]): - _eduvpn.set_secure_location(locations[1]) - - ## The callback which asks the user for a profile - #@_eduvpn.event.on(State.ASK_PROFILE, StateType.ENTER) - #def ask_profile(old_state: str, profiles: str): - # print("Multiple profiles found, you need to select a profile:") - - # # Parse the profiles as JSON - # data = json.loads(profiles) - - # # Get a lits of profiles - # profile_strings = [x["profile_id"] for x in data["info"]["profile_list"]] - # total_profiles = len(profile_strings) - - # # Create a list of the strings to standard output - # for idx, profile in enumerate(profile_strings): - # print(f"{idx+1}. {profile}") - - # # Get the profile index from the user - # profile_index = ask_profile_input(total_profiles) - - # # Set the profile with the index - # _eduvpn.set_profile(profile_strings[profile_index]) - - -# The main entry point -if __name__ == "__main__": - _eduvpn = eduvpn.EduVPN("org.eduvpn.app.linux", "configs", "en") - setup_callbacks(_eduvpn) - - # Register with the eduVPN-common library - try: - _eduvpn.register(debug=True) - except Exception as e: - print("Failed registering:", e) - - server = input( - "Which server (Custom/Institute Access) do you want to connect to? (e.g. https://eduvpn.example.com): " - ) - - # Get a Wireguard/OpenVPN config - try: - _eduvpn.add_secure_internet("https://idp.geant.org") - config, config_type = _eduvpn.get_config_secure_internet("https://idp.geant.org") - print(f"Got a config with type: {config_type} and contents:\n{config}") - except Exception as e: - print("Failed to connect:", e) - # Save and exit - _eduvpn.deregister() - sys.exit(1) - - # Set the internal FSM state to connected - try: - _eduvpn.set_connecting() - _eduvpn.set_connected() - except Exception as e: - print("Failed to set connected:", e) - - # Save and exit - _eduvpn.deregister() |
