From 72d66169ecef657eae7833c19e80b5e115d4a4b1 Mon Sep 17 00:00:00 2001 From: stuebinm Date: Tue, 30 Nov 2021 00:17:34 +0100 Subject: rudimentary emulation of bbbRoom etc. ("rudimentary" since for now the best it can do is just replacing / prepending urls; presumably, it should also do a sanity check or something of the like) --- config.json | 6 ++++++ lib/Properties.hs | 30 ++++++++++++++++++++++++++---- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/config.json b/config.json index e81bf03..0a2f914 100644 --- a/config.json +++ b/config.json @@ -17,6 +17,12 @@ "lounge" : "/@/lalala", "lobby" : "/@/lounge" } + }, + "bbb" : { + "scope" : ["bbb"], + "allowed" : [], + "blocked" : [], + "prefix" : "https://bbb.rc3.world/" } } } diff --git a/lib/Properties.hs b/lib/Properties.hs index 85ef7c0..35cc155 100644 --- a/lib/Properties.hs +++ b/lib/Properties.hs @@ -153,7 +153,7 @@ checkLayerProperty p@(Property name _value) = case name of >>= setProperty "jitsiRoomAdminTag" uselessEmptyLayer unwrapString' p - $ suggestProperty $ Property "jitsiTrigger" (StrProp "onaction") + $ suggestProperty $ Property "jitsiTrigger" "onaction" "jitsiTrigger" -> do isString p unlessHasProperty "jitsiTriggerMessage" @@ -169,6 +169,30 @@ checkLayerProperty p@(Property name _value) = case name of "jitsiInterfaceConfig" -> isForbidden "jitsiWidth" -> isIntInRange 0 100 p + "bbbRoom" -> do + removeProperty "bbbRoom" + unwrapURI (Proxy @"bbb") p + (\link -> do + dependsOn (Link link) + setProperty "openWebsite" link + setProperty "openWebsitePolicy" + ("fullscreen;camera;microphone;display-capture" :: Text) + ) + (const $ complain "property \"bbbRoom\" cannot be used with local links.") + "bbbTrigger" -> do + removeProperty "bbbTrigger" + requireProperty "bbbRoom" + unwrapString p + (setProperty "openWebsiteTrigger") + unlessHasProperty "bbbTriggerMessage" $ do + suggest "set \"bbbTriggerMessage\" to a custom message to overwrite the default \"press SPACE to enter the bbb room\"" + setProperty "openWebsiteTriggerMessage" + ("press SPACE to enter bbb room" :: Text) + "bbbTriggerMessage" -> do + removeProperty "bbbTriggerMessage" + requireProperty "bbbRoom" + unwrapString p + (setProperty "openWebsiteTriggerMessage") "playAudio" -> do uselessEmptyLayer unwrapLink p $ \link -> if "https://" `isPrefixOf` link @@ -196,9 +220,7 @@ checkLayerProperty p@(Property name _value) = case name of "openWebsiteTriggerMessage" -> do isString p requireProperty "openWebsiteTrigger" - "openWebsitePolicy" -> do - isString p - requireProperty "openWebsite" + "openWebsitePolicy" -> isForbidden "openWebsiteAllowApi" -> isForbidden "openTab" -> do isString p -- cgit v1.2.3