From b16c6fdd1e1ce42fe946f890ecf20d19f41284f0 Mon Sep 17 00:00:00 2001 From: "vincent@cubedesigners.com" Date: Thu, 19 Nov 2020 20:02:58 +0000 Subject: [PATCH] wait #3988 @3 --- .../social_screenshot/social_screenshot.js | 26 +++++++++++++ inc/ws/Controlleur/class.ws.services.php | 39 ++++++++++++------- inc/ws/Controlleur/class.ws.url.php | 3 +- 3 files changed, 52 insertions(+), 16 deletions(-) create mode 100644 fluidbook/tools/social_screenshot/social_screenshot.js diff --git a/fluidbook/tools/social_screenshot/social_screenshot.js b/fluidbook/tools/social_screenshot/social_screenshot.js new file mode 100644 index 000000000..4cec97364 --- /dev/null +++ b/fluidbook/tools/social_screenshot/social_screenshot.js @@ -0,0 +1,26 @@ +const puppeteer = require('puppeteer'); +const commandLineArgs = require('command-line-args'); +const optionDefinitions = [ + {name: 'url', type: String}, + {name: 'dest', type: String}, + {name: 'delay', type: Number, defaultOption: 10}, + {name: 'scale', type: Number, defaultOption: 1}, + {name: 'width', type: Number, defaultOption: 1920}, + {name: 'height', type: Number, defaultOption: 1080} +]; + +(async () => { + const options = commandLineArgs(optionDefinitions); + const browser = await puppeteer.launch({headless: true}); + const page = await browser.newPage(); + page.on('console', msg => console.log('PAGE LOG:', msg._text)); + await page.setViewport({ + width: options.width / options.scale, + height: options.height / options.scale, + deviceScaleFactor: options.scale, + }); + await page.goto(options.url); + await new Promise(r => setTimeout(r, 1000 * options.delay)); + await page.screenshot({path: options.dest, type: 'jpeg', quality: 95}); + await browser.close(); +})(); \ No newline at end of file diff --git a/inc/ws/Controlleur/class.ws.services.php b/inc/ws/Controlleur/class.ws.services.php index f240e1a41..67bda7355 100644 --- a/inc/ws/Controlleur/class.ws.services.php +++ b/inc/ws/Controlleur/class.ws.services.php @@ -209,23 +209,34 @@ class wsServices extends cubeFlashGateway $w = 1200; $h = 628; - $tmp = CubeIT_Files::tempnam() . '.svg'; - $cl = new CubeIT_CommandLine('xvfb-run'); - $cl->setArg('a'); - $cl->setArg('server-args', '-screen 0, ' . $w . 'x' . $h . 'x24'); - $cl->setArg(null, '/usr/bin/cutycapt'); - $cl->setArg('min-width', $w); - $cl->setArg('min-height', $h); - $cl->setArg('zoom-factor', 0.5); +// $tmp = CubeIT_Files::tempnam() . '.svg'; +// $cl = new CubeIT_CommandLine('xvfb-run'); +// $cl->setArg('a'); +// $cl->setArg('server-args', '-screen 0, ' . $w . 'x' . $h . 'x24'); +// $cl->setArg(null, '/usr/bin/cutycapt'); +// $cl->setArg('min-width', $w); +// $cl->setArg('min-height', $h); +// $cl->setArg('zoom-factor', 0.5); +// $cl->setArg('url', $url); +// $cl->setArg('delay', 10000); +// $cl->setArg('out', $tmp); +// $cl->execute(); +// $cl->debug(); +// +// $geo = $w . 'x' . $h; +// `convert $tmp -crop $geo+0+0 +repage -resize $geo -flatten $cover`; +// unlink($tmp); + + $cl = new CubeIT_CommandLine('node'); + $cl->setArg(null, WS_TOOLS . '/social_screenshot/social_screenshot.js'); + $cl->setArg('width', $w); + $cl->setArg('height', $h); + $cl->setArg('delay', 10); + $cl->setArg('scale', 0.5); + $cl->setArg('dest', $cover); $cl->setArg('url', $url); - $cl->setArg('delay', 10000); - $cl->setArg('out', $tmp); $cl->execute(); $cl->debug(); - - $geo = $w . 'x' . $h; - `convert $tmp -crop $geo+0+0 +repage -resize $geo -flatten $cover`; - unlink($tmp); } } } diff --git a/inc/ws/Controlleur/class.ws.url.php b/inc/ws/Controlleur/class.ws.url.php index bf6a756e6..6a803d6d0 100644 --- a/inc/ws/Controlleur/class.ws.url.php +++ b/inc/ws/Controlleur/class.ws.url.php @@ -1124,7 +1124,7 @@ html.tall{height:150%}' . "\n"; $q = '?' . $q; } $limit = time() - 60; - if (count($e) <= 2 || $e[2] < $limit) { + if (count($e) <= 2 || ($e[2] < $limit && !$nointerface)) { $e[2] = $time; $daoTheme = new wsDAOTheme($core->con); $theme = $daoTheme->getThemeOfBook($book_id, true); @@ -1456,7 +1456,6 @@ html,body{height:100%;cursor: wait;font-family: "Open Sans", Arial;background-co header('Content-type: text/plain'); ob_clean(); - $extractor = new wsPDFFontExtractor(WS_DOCS . '/' . $documentId); $extractor->extract(); -- 2.39.5