2014-08-08 08:53:31 -05:00
|
|
|
var page = require('webpage').create();
|
|
|
|
var args = require('system').args;
|
|
|
|
var params = {};
|
2014-10-01 06:20:30 -05:00
|
|
|
var regexp = /^([^=]+)=([^$]+)/;
|
2014-08-08 08:53:31 -05:00
|
|
|
|
|
|
|
args.forEach(function(arg) {
|
2014-10-01 06:20:30 -05:00
|
|
|
var parts = arg.match(regexp);
|
|
|
|
if (!parts) { return; }
|
|
|
|
params[parts[1]] = parts[2];
|
2014-08-08 08:53:31 -05:00
|
|
|
});
|
|
|
|
|
2015-03-20 18:14:13 -05:00
|
|
|
var usage = "url=<url> png=<filename> width=<width> height=<height> cookiename=<cookiename> sessionid=<sessionid> domain=<domain>";
|
2014-08-08 08:53:31 -05:00
|
|
|
|
2015-03-20 18:14:13 -05:00
|
|
|
if (!params.url || !params.png || !params.cookiename || ! params.sessionid || !params.domain) {
|
2014-08-08 08:53:31 -05:00
|
|
|
console.log(usage);
|
|
|
|
phantom.exit();
|
|
|
|
}
|
|
|
|
|
2015-03-20 18:14:13 -05:00
|
|
|
phantom.addCookie({
|
|
|
|
'name': params.cookiename,
|
|
|
|
'value': params.sessionid,
|
|
|
|
'domain': params.domain
|
|
|
|
});
|
|
|
|
|
2014-08-08 08:53:31 -05:00
|
|
|
page.viewportSize = {
|
2014-10-01 14:07:58 -05:00
|
|
|
width: params.width || '800',
|
|
|
|
height: params.height || '400'
|
2014-08-08 08:53:31 -05:00
|
|
|
};
|
|
|
|
|
2015-02-06 07:22:56 -06:00
|
|
|
var tries = 0;
|
|
|
|
|
2014-08-08 08:53:31 -05:00
|
|
|
page.open(params.url, function (status) {
|
2014-08-09 04:57:54 -05:00
|
|
|
console.log('Loading a web page: ' + params.url);
|
2014-08-08 08:53:31 -05:00
|
|
|
|
2014-10-01 14:07:58 -05:00
|
|
|
function checkIsReady() {
|
|
|
|
var canvas = page.evaluate(function() {
|
2015-06-19 13:13:25 -05:00
|
|
|
var body = angular.element(document.body); // 1
|
|
|
|
var rootScope = body.scope().$root;
|
|
|
|
return rootScope.performance.panelsRendered > 0;
|
2014-10-01 14:07:58 -05:00
|
|
|
});
|
2014-08-08 08:53:31 -05:00
|
|
|
|
2015-06-19 13:13:25 -05:00
|
|
|
if (canvas || tries === 1000) {
|
2014-10-01 14:07:58 -05:00
|
|
|
page.render(params.png);
|
|
|
|
phantom.exit();
|
|
|
|
}
|
|
|
|
else {
|
2015-02-06 07:22:56 -06:00
|
|
|
tries++;
|
2014-10-01 14:07:58 -05:00
|
|
|
setTimeout(checkIsReady, 10);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
setTimeout(checkIsReady, 200);
|
2014-08-08 08:53:31 -05:00
|
|
|
|
|
|
|
});
|