Socket
Socket
Sign inDemoInstall

pageres

Package Overview
Dependencies
Maintainers
1
Versions
52
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pageres - npm Package Compare versions

Comparing version 0.1.4 to 0.2.0

118

cli.js
#!/usr/bin/env node
'use strict';
var fs = require('fs');
var nopt = require('nopt');
var chalk = require('chalk');
var sudoBlock = require('sudo-block');
var _ = require('lodash');
var pageres = require('./index');

@@ -12,69 +13,90 @@

console.log('');
console.log('Specify urls and screen resolutions as arguments. Order doesn\'t matter.');
console.log('');
console.log(chalk.underline('Usage'));
console.log(' pageres <url> [<url> ...] --sizes <resolution>,[<resolution>,...]');
console.log(' pageres <url> [<url> ...] --file <filepath>');
console.log(' pageres <url> <resolution> [<resolution> <url> ...]');
console.log(' pageres [<url> <resolution> ...] < <file>');
console.log(' cat <file> | pageres [<url> <resolution> ...]');
console.log('');
console.log(chalk.underline('Example'));
console.log(' pageres todomvc.com yeoman.io --sizes 1366x768,1600x900');
console.log(' pageres todomvc.com yeoman.io 1366x768 1600x900');
console.log(' pageres 1366x768 < urls.txt');
console.log(' cat screen-resolutions.txt | pageres todomvc.com yeoman.io');
console.log('');
console.log('If --sizes is not specified it will fall back to the ten most popular screen resolutions according to w3counter.');
console.log('');
console.log('The <filepath> file should be formatted to have one <resolution> on each line.');
console.log('You can also pipe in a newline separated list of urls and screen resolutions which will get merged with the arguments.');
console.log('If no screen resolutions are specified it will fall back to the ten most popular ones according to w3counter.');
}
var opts = nopt({
help: Boolean,
version: Boolean,
sizes: String,
file: String
}, {
h: '--help',
v: '--version',
s: '--sizes',
f: '--file'
});
function getStdin(cb) {
var ret = '';
var urls = opts.argv.remain;
var sizes = opts.sizes && opts.sizes.split(',');
process.stdin.resume();
process.stdin.setEncoding('utf8');
//TODO: keep me up to date: http://www.w3counter.com/globalstats.php
var defRes = '1366x768,1024x768,1280x800,1920x1080,1440x900,768x1024,1280x1024,1600x900,320x480,320x568';
process.stdin.on('data', function (data) {
ret += data;
});
if (opts.help || urls.length === 0) {
return showHelp();
process.stdin.on('end', function () {
cb(ret);
});
}
if (opts.version) {
return console.log(require('./package').version);
}
function init(args) {
if (opts.help) {
return showHelp();
}
if (urls.length === 0) {
console.error(chalk.yellow('Specify at least one url'));
return showHelp();
}
if (opts.version) {
return console.log(require('./package').version);
}
if (!sizes) {
if (opts.file) {
sizes = fs.readFileSync(opts.file, 'utf8').trim().split('\n');
} else {
console.log('Neither ' + chalk.underline('--sizes') + ' nor ' + chalk.underline('--file') + ' specified. Falling back to the ten most popular screen resolutions according to w3counter as of January 2014:\n' + defRes);
var urls = _.uniq(args.filter(/./.test.bind(/\./)));
var sizes = _.uniq(args.filter(/./.test.bind(/^\d{3,4}x\d{3,4}$/i)))
if (urls.length === 0) {
console.error(chalk.yellow('Specify at least one url'));
return showHelp();
}
if (sizes.length === 0) {
console.log('No sizes specified. Falling back to the ten most popular screen resolutions according to w3counter as of January 2014:\n' + defRes);
sizes = defRes.split(',');
}
}
// detect if the user inputed the sizes wrong. good UX ftw.
if (urls.some(function (el) { return /^\d{3,4}x\d{3,4}$/.test(el) })) {
console.log(chalk.yellow('The --sizes needs to be comma separated, not space ;)'));
return showHelp();
pageres(urls, sizes, function (err) {
if (err) {
throw new Error(chalk.red('✗ ' + err.message));
}
var u = urls.length;
var s = sizes.length;
console.log(chalk.green('\n✓ Successfully generated %d screenshots from %d %s and %d %s'), u * s, u, (u === 1 ? 'url' : 'urls'), s, (s === 1 ? 'resolution': 'resolutions'));
});
}
pageres(urls, sizes, function (err) {
if (err) {
throw new Error(chalk.red('✗ ' + err.message));
}
var u = urls.length;
var s = sizes.length;
sudoBlock();
console.log(chalk.green('\n✓ Successfully generated %d screenshots from %d %s and %d %s'), u * s, u, (u === 1 ? 'url' : 'urls'), s, (s === 1 ? 'resolution': 'resolutions'));
var opts = nopt({
help: Boolean,
version: Boolean
}, {
h: '--help',
v: '--version'
});
var args = opts.argv.remain;
//TODO: keep me up to date: http://www.w3counter.com/globalstats.php
var defRes = '1366x768 1024x768 1280x800 1920x1080 1440x900 768x1024 1280x1024 1600x900 320x480 320x568';
if (process.stdin.isTTY) {
init(args);
} else {
getStdin(function (data) {
[].push.apply(args, data.trim().split('\n'));
init(args);
});
}
{
"name": "pageres",
"version": "0.1.4",
"version": "0.2.0",
"description": "Get screenshots of websites in different resolutions",

@@ -43,3 +43,5 @@ "license": "MIT",

"webshot": "~0.10.0",
"slugify-url": "~1.0.1"
"slugify-url": "~1.0.1",
"sudo-block": "~0.3.0",
"lodash": "~2.4.1"
},

@@ -46,0 +48,0 @@ "devDependencies": {

@@ -29,12 +29,16 @@ # pageres [![Build Status](https://travis-ci.org/sindresorhus/pageres.png?branch=master)](https://travis-ci.org/sindresorhus/pageres)

Specify urls and screen resolutions as arguments. Order doesn't matter.
Usage
pageres <url> [<url> ...] --sizes <resolution>,[<resolution>,...]
pageres <url> [<url> ...] --file <filepath>
pageres <url> <resolution> [<resolution> <url> ...]
pageres [<url> <resolution> ...] < <file>
cat <file> | pageres [<url> <resolution> ...]
Example
pageres todomvc.com yeoman.io --sizes 1366x768,1600x900
pageres todomvc.com yeoman.io 1366x768 1600x900
pageres 1366x768 < urls.txt
cat screen-resolutions.txt | pageres todomvc.com yeoman.io
If --sizes is not specified it will fall back to the ten most popular screen resolutions according to w3counter.
The <filepath> file should be formatted to have one <resolution> on each line.
You can also pipe in a newline separated list of urls and screen resolutions which will get merged with the arguments.
If no screen resolutions are specified it will fall back to the ten most popular ones according to w3counter.
```

@@ -41,0 +45,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc