Skip to content
Snippets Groups Projects
Unverified Commit 7f3cff98 authored by Kevin Lee's avatar Kevin Lee Committed by GitHub
Browse files

Merge pull request #431 from mozilla/feature/bot-logging

Bot logging
parents 0ab1a0e0 1e0f362a
No related branches found
No related tags found
No related merge requests found
......@@ -16,12 +16,20 @@ const options = docopt(doc);
const puppeteer = require("puppeteer");
const querystring = require("query-string");
function log(...objs) {
console.log.call(null, [new Date().toISOString()].concat(objs).join(" "));
}
function error(...objs) {
console.error.call(null, [new Date().toISOString()].concat(objs).join(" "));
}
(async () => {
const browser = await puppeteer.launch({ ignoreHTTPSErrors: true });
const page = await browser.newPage();
page.on("console", msg => console.log("PAGE: ", msg.text()));
page.on("error", err => console.error("ERROR: ", err.toString().split("\n")[0]));
page.on("pageerror", err => console.error("PAGE ERROR: ", err.toString().split("\n")[0]));
page.on("console", msg => log("PAGE: ", msg.text()));
page.on("error", err => error("ERROR: ", err.toString().split("\n")[0]));
page.on("pageerror", err => error("PAGE ERROR: ", err.toString().split("\n")[0]));
const baseUrl = options["--url"] || `https://${options["--host"]}/hub.html`;
......@@ -35,11 +43,11 @@ const querystring = require("query-string");
}
const url = `${baseUrl}?${querystring.stringify(params)}`;
console.log(url);
log(url);
const navigate = async () => {
try {
console.log("Spawning bot...");
log("Spawning bot...");
await page.goto(url);
await page.evaluate(() => console.log(navigator.userAgent));
let retryCount = 5;
......@@ -50,14 +58,14 @@ const querystring = require("query-string");
await page.mouse.click(100, 100);
// Signal that the page has been interacted with.
await page.evaluate(() => window.interacted());
console.log("Interacted.");
log("Interacted.");
} catch (e) {
console.log("Interaction error", e.message);
log("Interaction error", e.message);
if (retryCount-- < 0) {
// If retries failed, throw and restart navigation.
throw new Error("Retries failed");
}
console.log("Retrying...");
log("Retrying...");
backoff *= 2;
// Retry interaction to start audio playback
setTimeout(interact, backoff);
......@@ -65,7 +73,7 @@ const querystring = require("query-string");
};
await interact();
} catch (e) {
console.log("Navigation error", e.message);
log("Navigation error", e.message);
setTimeout(navigate, 1000);
}
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment