From: Vincent Vanwaelscappel Date: Thu, 3 Apr 2025 09:28:15 +0000 (+0200) Subject: #7398 @0.75 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=e83dd5ec0430d115136c9a3d9eb73bdfaa28ce34;p=fluidbook-toolbox.git #7398 @0.75 --- diff --git a/resources/badge/generate_image/generate_image.js b/resources/badge/generate_image/generate_image.js index d8e33330b..50c09cc43 100644 --- a/resources/badge/generate_image/generate_image.js +++ b/resources/badge/generate_image/generate_image.js @@ -10,21 +10,32 @@ const optionDefinitions = [ ]; (async () => { - const options = commandLineArgs(optionDefinitions); - const browser = await puppeteer.launch({ - headless: true, - args: [ - "--disable-setuid-sandbox", - "--no-sandbox", - ], - executablePath: 'google-chrome-stable', - }); + try { + const options = commandLineArgs(optionDefinitions); + const browser = await puppeteer.launch({ + headless: true, + args: [ + "--disable-setuid-sandbox", + "--no-sandbox", + ], + executablePath: 'google-chrome-stable', + }); - const page = await browser.newPage(); - await page.setViewport({ - width: options.width / options.scale, height: options.height / options.scale, deviceScaleFactor: options.scale, - }); - await page.goto(options.url, {waitUntil: 'networkidle2'}); - await page.screenshot({path: options.dest, type: 'png', omitBackground: true}); - await browser.close(); + const page = await browser.newPage(); + await page.setViewport({ + width: options.width / options.scale, + height: options.height / options.scale, + deviceScaleFactor: options.scale, + }); + await page.goto(options.url, {waitUntil: 'networkidle2'}); + await page.screenshot({path: options.dest, type: 'png', omitBackground: true}); + } catch (e) { + console.log(e); + } finally { + const pages = await browser.pages(); + for (let i = 0; i < pages.length; i++) { + await pages[i].close(); + } + await browser.close(); + } })(); diff --git a/resources/fluidbookpublication/delivery/preview.js b/resources/fluidbookpublication/delivery/preview.js index 4cae7d123..cbb4976e4 100644 --- a/resources/fluidbookpublication/delivery/preview.js +++ b/resources/fluidbookpublication/delivery/preview.js @@ -11,28 +11,38 @@ const optionDefinitions = [ ]; (async () => { - const options = commandLineArgs(optionDefinitions); - const browser = await puppeteer.launch({ - headless: true, - args: [ - "--disable-setuid-sandbox", - "--no-sandbox", - ], - executablePath: 'google-chrome-stable', - }); + try { + const options = commandLineArgs(optionDefinitions); + const browser = await puppeteer.launch({ + headless: true, + args: [ + "--disable-setuid-sandbox", + "--no-sandbox", + ], + executablePath: 'google-chrome-stable', + }); - const page = await browser.newPage(); - await page.setDefaultNavigationTimeout(0); - await page.setViewport({ - width: options.width / options.scale, height: options.height / options.scale, deviceScaleFactor: options.scale, - }); - await page.goto(options.url, {waitUntil: 'networkidle2'}); - //await page.waitForNavigation(); - await new Promise(r => setTimeout(r, 1000 * (options.delay + 3))); - // - await page.evaluate(() => window.fluidbook.setCurrentPage(2)); - await new Promise(r => setTimeout(r, 1000)); - await page.screenshot({path: options.dest, type: 'jpeg', quality: 95}); - - await browser.close(); + const page = await browser.newPage(); + await page.setDefaultNavigationTimeout(0); + await page.setViewport({ + width: options.width / options.scale, + height: options.height / options.scale, + deviceScaleFactor: options.scale, + }); + await page.goto(options.url, {waitUntil: 'networkidle2'}); + //await page.waitForNavigation(); + await new Promise(r => setTimeout(r, 1000 * (options.delay + 3))); + // + await page.evaluate(() => window.fluidbook.setCurrentPage(2)); + await new Promise(r => setTimeout(r, 1000)); + await page.screenshot({path: options.dest, type: 'jpeg', quality: 95}); + } catch (e) { + console.log(e); + } finally { + const pages = await browser.pages(); + for (let i = 0; i < pages.length; i++) { + await pages[i].close(); + } + await browser.close(); + } })(); diff --git a/resources/fluidbookpublication/social_screenshot/social_screenshot.js b/resources/fluidbookpublication/social_screenshot/social_screenshot.js index 1c9a1d6c7..fdf66e197 100644 --- a/resources/fluidbookpublication/social_screenshot/social_screenshot.js +++ b/resources/fluidbookpublication/social_screenshot/social_screenshot.js @@ -10,28 +10,37 @@ const optionDefinitions = [ ]; (async () => { - const options = commandLineArgs(optionDefinitions); - const browser = await puppeteer.launch({ - headless: true, - args: [ - "--disable-setuid-sandbox", - "--no-sandbox", - ], - executablePath: 'google-chrome-stable', - protocolTimeout: 18000000, - }); - const page = await browser.newPage(); - page.on('console', msg => console.log('PAGE LOG:', msg)); - await page.setViewport({ - width: options.width / options.scale, - height: options.height / options.scale, - deviceScaleFactor: options.scale, - }); - await page.setDefaultNavigationTimeout(0); - const response = await page.goto(options.url, {waitUntil: 'networkidle2', timeout: 0}); - if (response.status() === 200) { - await new Promise(r => setTimeout(r, 1000 * options.delay)); - await page.screenshot({path: options.dest, type: 'jpeg', quality: 95}); + try { + const options = commandLineArgs(optionDefinitions); + const browser = await puppeteer.launch({ + headless: true, + args: [ + "--disable-setuid-sandbox", + "--no-sandbox", + ], + executablePath: 'google-chrome-stable', + protocolTimeout: 18000000, + }); + const page = await browser.newPage(); + page.on('console', msg => console.log('PAGE LOG:', msg)); + await page.setViewport({ + width: options.width / options.scale, + height: options.height / options.scale, + deviceScaleFactor: options.scale, + }); + await page.setDefaultNavigationTimeout(0); + const response = await page.goto(options.url, {waitUntil: 'networkidle2', timeout: 0}); + if (response.status() === 200) { + await new Promise(r => setTimeout(r, 1000 * options.delay)); + await page.screenshot({path: options.dest, type: 'jpeg', quality: 95}); + } + } catch (e) { + console.log(e); + } finally { + const pages = await browser.pages(); + for (let i = 0; i < pages.length; i++) { + await pages[i].close(); + } + await browser.close(); } - await browser.close(); })(); diff --git a/resources/fluidbooktheme/theme_preview/theme_preview.js b/resources/fluidbooktheme/theme_preview/theme_preview.js index 0d2c1f3a3..7318a8467 100644 --- a/resources/fluidbooktheme/theme_preview/theme_preview.js +++ b/resources/fluidbooktheme/theme_preview/theme_preview.js @@ -14,57 +14,67 @@ const optionDefinitions = [ ]; (async () => { - const {installMouseHelper} = require('./install-mouse-helper'); - const options = commandLineArgs(optionDefinitions); - const browser = await puppeteer.launch({ - headless: true, - args: [ - "--disable-setuid-sandbox", - "--no-sandbox", - ], - executablePath: 'google-chrome-stable', - }); + try { + const {installMouseHelper} = require('./install-mouse-helper'); + const options = commandLineArgs(optionDefinitions); + const browser = await puppeteer.launch({ + headless: true, + args: [ + "--disable-setuid-sandbox", + "--no-sandbox", + ], + executablePath: 'google-chrome-stable', + }); - const page = await browser.newPage(); - page.on('console', async (msg) => { - const msgArgs = msg.args(); - for (let i = 0; i < msgArgs.length; ++i) { - console.log(await msgArgs[i].jsonValue()); - } - }); - await page.setViewport({ - width: options.width / options.scale, height: options.height / options.scale, deviceScaleFactor: options.scale, - }); - await installMouseHelper(page); - - await page.goto(options.url, {waitUntil: 'networkidle2'}); - await page.screenshot({path: options.destloader, type: 'jpeg', quality: 95}); - await new Promise(r => setTimeout(r, 1000 * (options.delay + 3))); - await page.evaluate(() => console.log(document.body.innerHTML)); - // Show slider and thumbs - await page.evaluate(() => window.fluidbook.slider.hover(512)); - // Set bookmark on page 3 - await page.evaluate(() => window.fluidbook.bookmarks.addBookmark(3)); - // Move to page 2 - await page.evaluate(() => window.fluidbook.setCurrentPage(2)); - // Move mouse to hover a link (show tooltip and link) - await page.mouse.move(150, 300); - // Wait 1s and take a screenshot - await new Promise(r => setTimeout(r, 2000)); - await page.screenshot({path: options.dest, type: 'jpeg', quality: 95}); + const page = await browser.newPage(); + page.on('console', async (msg) => { + const msgArgs = msg.args(); + for (let i = 0; i < msgArgs.length; ++i) { + console.log(await msgArgs[i].jsonValue()); + } + }); + await page.setViewport({ + width: options.width / options.scale, + height: options.height / options.scale, + deviceScaleFactor: options.scale, + }); + await installMouseHelper(page); - // Open print menu and take a screenshot - await page.evaluate(() => window.fluidbook.slider.leave()); - await page.evaluate(() => window.fluidbook.menu.openView('print')); - await new Promise(r => setTimeout(r, 1000)); - await page.screenshot({path: options.destmenu, type: 'jpeg', quality: 95}); + await page.goto(options.url, {waitUntil: 'networkidle2'}); + await page.screenshot({path: options.destloader, type: 'jpeg', quality: 95}); + await new Promise(r => setTimeout(r, 1000 * (options.delay + 3))); + await page.evaluate(() => console.log(document.body.innerHTML)); + // Show slider and thumbs + await page.evaluate(() => window.fluidbook.slider.hover(512)); + // Set bookmark on page 3 + await page.evaluate(() => window.fluidbook.bookmarks.addBookmark(3)); + // Move to page 2 + await page.evaluate(() => window.fluidbook.setCurrentPage(2)); + // Move mouse to hover a link (show tooltip and link) + await page.mouse.move(150, 300); + // Wait 1s and take a screenshot + await new Promise(r => setTimeout(r, 2000)); + await page.screenshot({path: options.dest, type: 'jpeg', quality: 95}); - // Open burger menu and take a screenshot - await page.evaluate(() => window.fluidbook.menu.closeView()); - await page.evaluate(() => window.fluidbook.nav.menuAPI.open()); - await new Promise(r => setTimeout(r, 500)); - await page.mouse.move(60, 400); - await page.screenshot({path: options.destburger, type: 'jpeg', quality: 95}); + // Open print menu and take a screenshot + await page.evaluate(() => window.fluidbook.slider.leave()); + await page.evaluate(() => window.fluidbook.menu.openView('print')); + await new Promise(r => setTimeout(r, 1000)); + await page.screenshot({path: options.destmenu, type: 'jpeg', quality: 95}); - await browser.close(); + // Open burger menu and take a screenshot + await page.evaluate(() => window.fluidbook.menu.closeView()); + await page.evaluate(() => window.fluidbook.nav.menuAPI.open()); + await new Promise(r => setTimeout(r, 500)); + await page.mouse.move(60, 400); + await page.screenshot({path: options.destburger, type: 'jpeg', quality: 95}); + } catch (e) { + console.log(e); + } finally { + const pages = await browser.pages(); + for (let i = 0; i < pages.length; i++) { + await pages[i].close(); + } + await browser.close(); + } })(); diff --git a/resources/quiztheme/theme_preview/theme_preview.js b/resources/quiztheme/theme_preview/theme_preview.js index 87e9a6d40..c12b90fe5 100644 --- a/resources/quiztheme/theme_preview/theme_preview.js +++ b/resources/quiztheme/theme_preview/theme_preview.js @@ -14,48 +14,58 @@ const optionDefinitions = [ ]; (async () => { - const options = commandLineArgs(optionDefinitions); - const browser = await puppeteer.launch({ - headless: 'new', - args: [ - "--disable-setuid-sandbox", - "--no-sandbox", - ], - executablePath: 'google-chrome-stable', - }); + try { + const options = commandLineArgs(optionDefinitions); + const browser = await puppeteer.launch({ + headless: 'new', + args: [ + "--disable-setuid-sandbox", + "--no-sandbox", + ], + executablePath: 'google-chrome-stable', + }); - const page = await browser.newPage(); - page.on('console', async (msg) => { - const msgArgs = msg.args(); - for (let i = 0; i < msgArgs.length; ++i) { - console.log(await msgArgs[i].jsonValue()); - } - }); - await page.setViewport({ - width: options.width / options.scale, height: options.height / options.scale, deviceScaleFactor: options.scale, - }); - - // Intro screen - await page.goto(options.url, {waitUntil: 'networkidle2'}); - await new Promise(r => setTimeout(r, 1000 * (options.delay + 5))); - await page.screenshot({path: options.intro, type: 'jpeg', quality: 95}); + const page = await browser.newPage(); + page.on('console', async (msg) => { + const msgArgs = msg.args(); + for (let i = 0; i < msgArgs.length; ++i) { + console.log(await msgArgs[i].jsonValue()); + } + }); + await page.setViewport({ + width: options.width / options.scale, + height: options.height / options.scale, + deviceScaleFactor: options.scale, + }); - // Question 1 - await page.evaluate(() => window.quiz.screens.showScreen('q-0')); - await new Promise(r => setTimeout(r, 1000 * (options.delay + 3))); - await page.screenshot({path: options.standard, type: 'jpeg', quality: 95}); - await page.evaluate(() => window.quiz.score.setAnswer(0, [0])); + // Intro screen + await page.goto(options.url, {waitUntil: 'networkidle2'}); + await new Promise(r => setTimeout(r, 1000 * (options.delay + 5))); + await page.screenshot({path: options.intro, type: 'jpeg', quality: 95}); - // Question 2 - await page.evaluate(() => window.quiz.screens.showScreen('q-1')); - await new Promise(r => setTimeout(r, 1000 * (options.delay + 3))); - await page.screenshot({path: options.draganddrop, type: 'jpeg', quality: 95}); - await page.evaluate(() => window.quiz.score.setAnswer(1, [1, 1, 2, 1, 2])); + // Question 1 + await page.evaluate(() => window.quiz.screens.showScreen('q-0')); + await new Promise(r => setTimeout(r, 1000 * (options.delay + 3))); + await page.screenshot({path: options.standard, type: 'jpeg', quality: 95}); + await page.evaluate(() => window.quiz.score.setAnswer(0, [0])); - // Outro - await page.evaluate(() => window.quiz.screens.showScreen('outro')); - await new Promise(r => setTimeout(r, 1000 * (options.delay + 3))); - await page.screenshot({path: options.outro, type: 'jpeg', quality: 95}); + // Question 2 + await page.evaluate(() => window.quiz.screens.showScreen('q-1')); + await new Promise(r => setTimeout(r, 1000 * (options.delay + 3))); + await page.screenshot({path: options.draganddrop, type: 'jpeg', quality: 95}); + await page.evaluate(() => window.quiz.score.setAnswer(1, [1, 1, 2, 1, 2])); - await browser.close(); + // Outro + await page.evaluate(() => window.quiz.screens.showScreen('outro')); + await new Promise(r => setTimeout(r, 1000 * (options.delay + 3))); + await page.screenshot({path: options.outro, type: 'jpeg', quality: 95}); + } catch (e) { + console.log(e); + } finally { + const pages = await browser.pages(); + for (let i = 0; i < pages.length; i++) { + await pages[i].close(); + } + await browser.close(); + } })();