summaryrefslogtreecommitdiff
path: root/wrappers/python/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'wrappers/python/main.py')
-rw-r--r--wrappers/python/main.py102
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()