--- /dev/null
+const puppeteer = require('puppeteer');\r
+const commandLineArgs = require('command-line-args');\r
+const optionDefinitions = [\r
+ {name: 'url', type: String},\r
+ {name: 'dest', type: String},\r
+ {name: 'delay', type: Number, defaultOption: 10},\r
+ {name: 'scale', type: Number, defaultOption: 1},\r
+ {name: 'width', type: Number, defaultOption: 1920},\r
+ {name: 'height', type: Number, defaultOption: 1080}\r
+];\r
+\r
+(async () => {\r
+ const options = commandLineArgs(optionDefinitions);\r
+ const browser = await puppeteer.launch({headless: true});\r
+ const page = await browser.newPage();\r
+ page.on('console', msg => console.log('PAGE LOG:', msg._text));\r
+ await page.setViewport({\r
+ width: options.width / options.scale,\r
+ height: options.height / options.scale,\r
+ deviceScaleFactor: options.scale,\r
+ });\r
+ await page.goto(options.url);\r
+ await new Promise(r => setTimeout(r, 1000 * options.delay));\r
+ await page.screenshot({path: options.dest, type: 'jpeg', quality: 95});\r
+ await browser.close();\r
+})();
\ No newline at end of file
$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);
}
}
}