mirror of
https://github.com/vladocar/screenshoteer.git
synced 2024-09-28 14:11:33 +02:00
first commit
This commit is contained in:
parent
314fdd4db4
commit
0a9eba44e5
58
README.md
Normal file
58
README.md
Normal file
@ -0,0 +1,58 @@
|
||||
<h1 align="center"> Screenshoteer </h1>
|
||||
|
||||
<p align="center"> Makes web screenshots and mobile emulations from the command line. </p>
|
||||
|
||||
<hr/>
|
||||
|
||||
<p>Tool based on <a href="https://github.com/GoogleChrome/puppeteer">puppeteer</a>. </p>
|
||||
|
||||
<h4>Installation </h4>
|
||||
|
||||
```shell
|
||||
npm i -g screenshoteer
|
||||
```
|
||||
<p>You can use screenshoteer like this:</p>
|
||||
|
||||
```shell
|
||||
screenshoteer --url https://www.example.com
|
||||
```
|
||||
|
||||
<p>And with the help of puppeteer(Headless Chrome) it will generate screenshot of the entire web page.</p>
|
||||
|
||||
<p>
|
||||
Parameters:
|
||||
|
||||
--url web page url
|
||||
--emulate - emulate web device example: --emulate "iPhone 6"
|
||||
--fullpage - can be true or false. It will take screenshot of entire web page if is true. True is the default parameter.
|
||||
--pdf - generate additional pdf
|
||||
--w - width of the Web Page in px
|
||||
--h - height of the Web Page in px
|
||||
|
||||
<p>
|
||||
|
||||
<h4>Example: </h4>
|
||||
|
||||
```shell
|
||||
screenshoteer --url https://news.ycombinator.com --fullpage false
|
||||
|
||||
screenshoteer --url https://www.reddit.com/r/nodejs --emulate "iPhone 7"
|
||||
|
||||
screenshoteer --url https://www.nytimes.com --emulate "Nexus 4"
|
||||
|
||||
screenshoteer --url https://www.reddit.com/r/javascript/ --w 600 --h 800 --fullpage false
|
||||
|
||||
screenshoteer --url https://www.reddit.com/r/javascript/ --w 600 --h 0 --fullpage false
|
||||
|
||||
screenshoteer --url https://lobste.rs --pdf
|
||||
|
||||
screenshoteer --url https://lobste.rs --w 500
|
||||
|
||||
|
||||
```
|
||||
<p> List of of supported mobile devices: https://github.com/GoogleChrome/puppeteer/blob/master/DeviceDescriptors.js
|
||||
</p>
|
||||
|
||||
<h3>License</h3>
|
||||
|
||||
This project is licensed under the MIT License
|
41
index.js
Executable file
41
index.js
Executable file
@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
const puppeteer = require('puppeteer')
|
||||
const devices = require('puppeteer/DeviceDescriptors')
|
||||
const program = require('commander')
|
||||
|
||||
var urlvalue, emulate = "";
|
||||
|
||||
program
|
||||
.option('--url, [url]', 'The url')
|
||||
.option('--emulate, [emulate]', 'emulate device')
|
||||
.option('--fullpage, [fullpage]', 'Full Page')
|
||||
.option('--pdf, [pdf]', 'Generate PDF')
|
||||
.option('--w, [w]', 'width')
|
||||
.option('--h, [h]', 'height')
|
||||
.parse(process.argv);
|
||||
|
||||
if (program.url) urlvalue = program.url
|
||||
else process.exit(console.log("Please add --url parameter. Something like this: $ screenshoteer --url http:www.example.com"));
|
||||
|
||||
|
||||
if (program.fullpage && program.fullpage == "true") fullPage = true
|
||||
if (program.fullpage && program.fullpage == "false") fullPage = false
|
||||
else fullPage = true;
|
||||
|
||||
console.log(urlvalue);
|
||||
console.log(fullPage);
|
||||
|
||||
(async () => {
|
||||
const browser = await puppeteer.launch()
|
||||
const page = await browser.newPage()
|
||||
const d = new Date()
|
||||
if (program.w && program.h) await page.setViewport({width: Number(program.w), height: Number(program.h)})
|
||||
if (program.emulate) await page.emulate(devices[program.emulate]);
|
||||
await page.goto(urlvalue)
|
||||
await page.screenshot({path: await page.title() + " " + program.emulate + " " + d.getTime() + '.png', fullPage: fullPage})
|
||||
await page.emulateMedia('screen')
|
||||
if (program.pdf) await page.pdf({ path: await page.title() + " " + program.emulate + " " + d.getTime() + '.pdf' })
|
||||
console.log(await page.title())
|
||||
await browser.close()
|
||||
})()
|
31
package.json
Normal file
31
package.json
Normal file
@ -0,0 +1,31 @@
|
||||
{
|
||||
"name": "screenshoteer",
|
||||
"version": "1.0.0",
|
||||
"description": "Make screenshots and device emulations form your terminal",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"bin": {
|
||||
"screenshoteer": "./index.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"commander": "^2.19.0",
|
||||
"puppeteer": "^1.10.0"
|
||||
},
|
||||
"keywords": [
|
||||
"screenshots",
|
||||
"emulations",
|
||||
"mobile"
|
||||
],
|
||||
"author": "Vladimir Carrer <vladocar@gmail.com> (http://www.vcarrer.com)",
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/vladocar/screenshoteer.git"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/vladocar/screenshoteer/issues"
|
||||
},
|
||||
"homepage": "https://github.com/vladocar/screenshoteer#readme"
|
||||
}
|
Loading…
Reference in New Issue
Block a user