summaryrefslogtreecommitdiff
path: root/wrappers/python/eduvpncommon/main.py
diff options
context:
space:
mode:
authorjwijenbergh <jeroenwijenbergh@protonmail.com>2022-03-15 16:12:48 +0100
committerjwijenbergh <jeroenwijenbergh@protonmail.com>2022-04-05 12:26:14 +0200
commit5887d925486e7ce650c3440de6cd29dd2240e929 (patch)
tree6bfce1ddb6a1de5647f23fe7131098ebb421034e /wrappers/python/eduvpncommon/main.py
parenta019e95fdbaea3d7af2d8ad10903fd656bfc4466 (diff)
Add callback state change and simplify wrappers
The python wrapper contained lots of code that should not be exposed. The other wrappers I will update later
Diffstat (limited to 'wrappers/python/eduvpncommon/main.py')
-rw-r--r--wrappers/python/eduvpncommon/main.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/wrappers/python/eduvpncommon/main.py b/wrappers/python/eduvpncommon/main.py
new file mode 100644
index 0000000..b8278ad
--- /dev/null
+++ b/wrappers/python/eduvpncommon/main.py
@@ -0,0 +1,22 @@
+from . import lib, GOCB_StateChange
+from ctypes import *
+
+@GOCB_StateChange
+def state_change(old, new):
+ print(f"Python: State change {old.decode()} {new.decode()}")
+
+def InitializeOAuth():
+ ptr = lib.InitializeOAuth()
+ value = cast(ptr, c_char_p).value
+ authURL = value.decode()
+ lib.FreeString(ptr)
+ return authURL
+
+# Registers the python app with the GO code
+# name: The name of the app to be registered
+# url: The url of the server to connect to, FIXME: To be removed
+# state_callback: The callback to trigger whenever a state is changed, FIXME: Remove whenever this wrapper has implemented callbacks using function decorations
+def Register(name, url, state_callback):
+ name_bytes = name.encode('utf-8')
+ url_bytes = url.encode('utf-8')
+ lib.Register(name_bytes, url_bytes, state_callback)