diff --git a/package.json b/package.json index 60a29119b9be0129d463788274f78100d31d1b80..527b304c585c8b3f71ec63cc1e779fb58317ca10 100644 --- a/package.json +++ b/package.json @@ -80,7 +80,7 @@ "lodash": "^4.17.5", "node-sass": "^4.7.2", "prettier": "^1.7.0", - "puppeteer": "^1.3.0", + "puppeteer": "1.3.0", "rimraf": "^2.6.2", "sass-loader": "^6.0.7", "selfsigned": "^1.10.2", diff --git a/scripts/run-bot.js b/scripts/run-bot.js index d66609ce243168cc50662f35eeb1fea822a53ae5..4aec8fd5b066210088cbac1428767b0e8e2d60d0 100644 --- a/scripts/run-bot.js +++ b/scripts/run-bot.js @@ -19,13 +19,19 @@ const querystring = require("query-string"); const navigate = async () => { try { await page.goto(url); + await page.evaluate(() => { + console.log(navigator.userAgent); + }); console.log("BPDEBUG navigated"); + // Interact with the page so that audio can play. + page.mouse.click(100, 100); + await page.evaluate(() => { + window.interacted(); + }); } catch (e) { + console.log("Navigation error", e); setTimeout(navigate, 1000); } }; navigate(); - - // Interact with the page so that audio can play. - page.mouse.click(100, 100); })(); diff --git a/scripts/run-bot.sh b/scripts/run-bot.sh index 3c9751544d01268276134ed16cf8a25c50563c93..48fcb470bd6748461d3e4bcb4ec430b7dda90c90 100755 --- a/scripts/run-bot.sh +++ b/scripts/run-bot.sh @@ -4,8 +4,8 @@ script_directory=$(dirname "$0") script_directory=$(realpath "$script_directory") cd $script_directory/.. -# yarn build -# yarn serve --ssl --port 8080 -yarn -yarn start & +yarn build +yarn serve --ssl --port 8080 public +# yarn +# yarn start & node scripts/run-bot.js diff --git a/src/hub.js b/src/hub.js index a1244ec392153906f5f760f45d1b8f6aa97e1deb..46e85c04cce2060eecd602f2d511b5cbe072efe0 100644 --- a/src/hub.js +++ b/src/hub.js @@ -298,6 +298,13 @@ const onReady = async () => { playerRig.setAttribute("avatar-replay", ""); const audio = document.getElementById("bot-recording"); mediaStream.addTrack(audio.captureStream().getAudioTracks()[0]); + // wait for runner script to confirm interaction so that we can play audio. + const interacted = new Promise(resolve => { + window.interacted = resolve; + }); + console.log("BPDEBUG waiting for interaction"); + await interacted; + console.log("BPDEBUG playing audio"); audio.play().catch(e => console.log(e.toString())); NAF.connection.adapter.setLocalMediaStream(mediaStream); } diff --git a/yarn.lock b/yarn.lock index 8c3139410925dc40c6bc785b3a2eb74e9f02e3d8..da047023a9b19545b6a90502092b7dfc14c0eff3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6756,7 +6756,7 @@ punycode@^1.2.4, punycode@^1.3.2, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" -puppeteer@^1.3.0: +puppeteer@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-1.3.0.tgz#f571c5f27153ca164a8188e6328ce2e4946878f3" dependencies: