diff options
| author | Sacha Chua <sacha@sachachua.com> | 2025-11-26 14:45:30 -0500 |
|---|---|---|
| committer | Sacha Chua <sacha@sachachua.com> | 2025-11-26 14:45:30 -0500 |
| commit | 16cbdc124d448afd1264fa37b12bd8f0f1841fd8 (patch) | |
| tree | c477806c4e9bfc73f07c84e6a703a068c220d635 /README.org | |
| parent | a921272d3c9c2c5c45ff3844ea16f2f8c9d105bb (diff) | |
| download | emacsconf-ansible-16cbdc124d448afd1264fa37b12bd8f0f1841fd8.tar.xz emacsconf-ansible-16cbdc124d448afd1264fa37b12bd8f0f1841fd8.zip | |
Diffstat (limited to '')
| -rw-r--r-- | README.org | 100 |
1 files changed, 12 insertions, 88 deletions
@@ -297,98 +297,17 @@ For each track: 1. Install the Tampermonkey extension by going to https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ . -2. Install the BBB script by clicking on the Tampermonkey extension, choosing *Install New Script*, and pasting in the following: - - #+begin_src js :eval no - // ==UserScript== - // @name Emacsconf BBB setup - // @namespace https://emacsconf.org/ - // @version 0.2 - // @description Join BBB and set things up - // @author Sacha Chua - // @match https://bbb.emacsverse.org/* - // @icon https://www.google.com/s2/favicons?sz=64&domain=emacsverse.org - // @grant none - // ==/UserScript== - ( - async function() { - 'use strict'; - const NAME = 'emacsconf'; - async function waitUntil(conditionFunc, interval=500, timeout=null) { - let initResult = conditionFunc(); - if (initResult) return initResult; - return new Promise((resolve, reject) => { - let timeSoFar = 0; - let timer = setInterval(() => { - let result = conditionFunc(); - if (result) { - clearInterval(timer); - resolve(result); - } - timeSoFar += interval; - if (timeout && timeSoFar > timeout) { - clearInterval(timer); - reject(); - } - }, interval); - }); - } - // https://stackoverflow.com/questions/66536154/changing-input-text-of-a-react-app-using-javascript - function setNativeValue(element, value) { - const valueSetter = Object.getOwnPropertyDescriptor(element, 'value').set; - const prototype = Object.getPrototypeOf(element); - const prototypeValueSetter = Object.getOwnPropertyDescriptor(prototype, 'value').set; - - if (valueSetter && valueSetter !== prototypeValueSetter) { - prototypeValueSetter.call(element, value); - } else { - valueSetter.call(element, value); - } - } - setTimeout(function() { - if (document.querySelector('input#joinFormName')) { - setNativeValue(document.querySelector('input#joinFormName'), NAME); - document.querySelector('input#joinFormName').dispatchEvent(new Event('input', { bubbles: true })); - document.querySelector('input#consentCheck').click() - document.querySelector('button[type="submit"]').click(); - return; - } - if (document.querySelector('.icon-bbb-listen')) { - document.querySelector('.icon-bbb-listen').closest('button').click(); - } - if (document.querySelector('.icon-bbb-user')) { - document.querySelector('.icon-bbb-user').closest('button').click(); - } - }, 2000); - })(); - #+end_src +2. Install the BBB script by clicking on the Tampermonkey extension, choosing *Install New Script*, and using this as the URL. Enable checking for updates. + + https://live.emacsconf.org/emacsconf-tampermonkey-bbb.js + + (these are updated by the Ansible playbook tag "static") Press =Ctrl+s= to save. 3. Add this script for IRC: - #+begin_src js :eval no -// ==UserScript== -// @name Connect to EmacsConf chat automatically -// @namespace https://emacsconf.org/ -// @version 0.1 -// @description try to take over the world! -// @author You -// @match https://chat.emacsconf.org/* -// @icon https://www.google.com/s2/favicons?sz=64&domain=emacsconf.org -// @grant none -// ==/UserScript== - -(function() { - 'use strict'; - setTimeout(() => { - if (document.querySelector('.connect-row')) { - document.querySelector('.connect-row').closest('form').querySelector('button').click(); - } - }, 1000); -})(); - #+end_src - + https://live.emacsconf.org/emacsconf-tampermonkey-irc.js 4. Join an BBB meeting and switch out of full-screen with F11. Check the address bar to see if autoplay is disabled (crossed-out autoplay icon). If it is, click on it and change *Block audio* to *Allow audio and video*. @@ -419,6 +338,9 @@ ffmpeg -y -i handwritten/reencode.webm -t 60 -vcodec copy -acodec copy test.webm nodemon -w . -e yml -x 'ansible-playbook -i inventory.yml prod-playbook.yml --tags vnc; true' * Restreaming +:PROPERTIES: +:ID: 20251122T182719.845166 +:END: Add something like this to your ~prod-vars.yml~: @@ -460,7 +382,9 @@ restreaming_platforms: source: gen.webm #+end_src -It doesn't get automatically started, so you'll also need to call ~screen -S restream-$TRACK_ID-youtube~ and ~screen -S restream-$TRACK_ID-toobnix~. +This will set up scripts on the live0 server. + +It doesn't get automatically started, so you'll also need to call ~screen -S restream-$SHIFT_ID-youtube~ and ~screen -S restream-$TRACK_ID-toobnix~. * BBB ansible-playbook -i inventory.yml prod-playbook.yml --tags bbb * Local testing with vagrant |
