summaryrefslogtreecommitdiff
path: root/bin/zoom
diff options
context:
space:
mode:
Diffstat (limited to 'bin/zoom')
-rwxr-xr-xbin/zoom45
1 files changed, 45 insertions, 0 deletions
diff --git a/bin/zoom b/bin/zoom
new file mode 100755
index 0000000..f1d92c3
--- /dev/null
+++ b/bin/zoom
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+# convert https://us02web.zoom.us/j/1111111?pwd=xxxxxxxx (the URI you
+# usually get)
+#
+# into zoommtg://zoom.us/join?confno=1111111&pwd=xxxxxxxx (the URI
+# that the zoom client actually wants)
+
+munge-zoom-uri() {
+ local uri="$1"
+ if [[ $uri =~ ^zoommtg://[^/]+/join ]]; then
+ echo "$uri"
+ return
+ fi
+
+ if [[ $uri =~ ^https?://([^/.]+\.)?zoom\.us/j/([0-9]+)$ ]]; then
+ echo "zoommtg://zoom.us/join?confno=${BASH_REMATCH[2]}"
+ return
+ fi
+
+ if [[ $uri =~ ^https?://([^/.]+\.)?zoom\.us/j/([0-9]+)\?pwd=(.+)$ ]]; then
+ echo "zoommtg://zoom.us/join?confno=${BASH_REMATCH[2]}&pwd=${BASH_REMATCH[3]}"
+ return
+ fi
+
+ if [[ $uri =~ ^https?://([^/.]+\.)?zoom\.us/w/([0-9]+)\?pwd=(.+)$ ]]; then
+ echo "zoommtg://zoom.us/join?confno=${BASH_REMATCH[2]}&pwd=${BASH_REMATCH[3]}"
+ return
+ fi
+
+ if [[ $uri =~ ^https?://([^/.]+\.)?zoom\.us/my/([a-zA-Z0-9]+)\?pwd=(.+)$ ]]; then
+ echo "zoommtg://zoom.us/join?confno=${BASH_REMATCH[2]}&pwd=${BASH_REMATCH[3]}"
+ return
+ fi
+
+ >&2 echo "can't parse <$uri>, ignoring";
+ return
+}
+
+declare -a args
+if [[ -n "$1" ]]; then
+ args+=("$(munge-zoom-uri "$1")")
+fi
+
+exec /opt/zoom/ZoomLauncher "${args[@]}"